Curatescape 파일 뷰어 한글깨짐 현상 해결방법은?

edited July 2016 in Curatescape
아이템에 포함되어 있는 사진, 오디오 등의 제목/내용 등에서 한글이 깨집니다.
모바일에서는 깨진 특수문자라도 표시가 되는데, 데스크탑에서는 깨진 문자열이 있을 경우 아예 표시가 되지 않습니다.

스크린샷을 첨부합니다.
해결방법 알려주세요.

Comments

  • 아래는 (주)비타소프트 홍순기 사장님께서 답변해 주신 내용입니다.








    다음과 같이 처리하면 됩니다.

    적용해 보시고, 잘 안되거나, 추가 질문 있으시면 연락주십시오.  

    -----------------------------------------

    /themes/curatescape/custom.php


    function mh_item_images 에서

     

       $photoDesc = mh_normalize_special_characters(strip_tags(mh_file_caption($file,false),'<a><strong><em><i><b><span>'));

      $photoTitle = mh_normalize_special_characters(metadata($file,array('Dublin Core', 'Title')));


       if($photoTitle){

        $fancyboxCaption= mh_normalize_special_characters(mh_file_caption($file,true));


    위의 부분에서 mh_normalize_special_characters 함수를 사용하지 않고

    htmlspecialchars 함수를 사용하시면 됩니다.


       $photoDesc = htmlspecialchars(strip_tags(mh_file_caption($file,false),'<a><strong><em><i><b><span>'));

      $photoTitle = htmlspecialchars (metadata($file,array('Dublin Core', 'Title')));


       if($photoTitle){

        $fancyboxCaption= htmlspecialchars (mh_file_caption($file,true));

     

    일단은 해결될 것으로 생각하고 있으나,

    실제 결과물이 근본적으로 문제가 해결되었는까지는 직접 확인하셔야 할 것입니다. 

  • edited August 2015

    위에서 알려주신 방법을 적용해 봤는데 다행히도 한글 캐릭터가 깨지던 현상은 사라졌으나 fancybox를 통해 출력되는 캡션에 적용된 HTML 태그가 화면상에 그대로 노출되는 문제가 있었습니다.

    이를 해결하기 위해 사용한 방법은 다음과 같습니다.
    1. mh_normalize_special_characters 또는 htmlspecialchars 함수를 아예 사용하지 않는 방법(함수 제거)
    2. 알려주신 htmlspecialchars 함수 대신 htmlspecialchars_decode 함수를 사용하는 방법(다른 함수 적용)

    1번과 2번의 방법 모두 해결 가능하였으며, 사이트상에는 처음엔 1번의 방법을 적용했다가 다시 2번의 방법을 최종 적용했습니다.

    + htmlspecialchars 함수 사용시 발생되던 문제점 : 아래의 화면과 같이 한글 앞에 HTML 태그가 그대로 노출됨.

    image


    + htmlspecialchars 함수 대신 htmlspecialchars_decode 함수 사용시 출력 결과 : html 태그 정상 작동, 한글 정상 출력

    image


    * htmlspecialchars-decode 함수 관련 레퍼런스 링크
    http://php.net/manual/en/function.htmlspecialchars-decode.php

  • 위에서 설명한 htmlspecialchars-decode 함수를 적용시킨 php 파일을 첨부합니다.
    수정 코드는 1183 라인부터 확인하시면 됩니다.


  • 위에서 설명한 htmlspecialchars-decode 함수를 적용시킨 php 파일을 첨부합니다.
    수정 코드는 1183 라인부터 확인하시면 됩니다.

    p.s. 첨부파일은 zip 파일인데, php 파일은 업로드가 바로 안되는 관계로 php 파일을 zip으로 압축해서 올렸습니다.
    파일을 확인하시려면 zip 파일 압축을 해제한 후 확인하시기 바랍니다.

Sign In or Register to comment.