"%EC%B9%BC%EB%9F%BC2.jpg" 란 문자열이 urldecode가 안되고 깨집니다. 블록

"%EC%B9%BC%EB%9F%BC2.jpg" 란 문자열은 아래 이미지를 보시면 알겠지만 "칼럼2.jpg" 란 문자이고 이게 리스트에서 썸네일을 클릭하면 이게 원래 escape 처리된 채로 url이 열려야 하는데 "칼럼2.jpg"란 글자로 환원돼 url이 열리면서 해당 이미지가 보이지 않는 현상이 발생하고 있습니다. 크롬의 버그 같은데 다음 url 에 있는 해당 이미지를 클릭해 보시면 증상을 확인할 수 있습니다.

http://www.blrun.net/bbs/zboard.php?id=cap1

근데 더욱 이상한 건 escape(urlencode) 된 "%EC%B9%BC%EB%9F%BC2.jpg" 란 문자열을 http://www.blrun.net/ue.php 에서 escape 해독을 해보면 글자가 깨져서 보인다는 겁니다. 그래서 해당 변환 소스에서 단독으로 해당 escape 문자열을 urldecode 함수로 해독을 해도 "칼럼2.jpg" 란 정상적인 글자가 보이지 않고 엉뚱한 글자로 깨져서 보입니다. 이 증상의 원인 아시는 분 계신가요?

이런 버그도 있나요? ㅡ_ㅡ

덧글

  • Hide_D 2015/10/20 14:15 # 답글

    오늘도 적어보는 한마디.

    UTF-8!!!

    내부에서 CP949로 처리를 하려고 하니, 또 깨질 수밖에.
  • shaind 2015/10/20 18:03 # 답글

    저 %인코딩은 utf-8 인코딩된 유니코드이고, urldecode함수는 이걸 다시 유니코드 글자값으로 리턴하는데, 이걸 euc-kr 내지는 cp949로 된 페이지에 집어넣으니 당연히 브라우저는 유니코드 값을 euc-kr 문자테이블에 집어넣어서 엉뚱한 깨진문자가 나옴. 이건 브라우저의 페이지 보는 옵션에서 인코딩을 유니코드로 바꾸면 바로 확인할 수 있는 부분. (페이지 인코딩을 바꾸면 "칼럼"이란 한글만 제대로 나오게 바뀜)

    한글 2글자를 %인코딩 6바이트로 변환했는데 이게 한글/한자 3글자로 변환됬으면 대충 눈치를 깔 법도 하지 않은지?

    utf-8이 괜히 표준으로 된 게 아님.

  • 나인테일 2015/10/20 16:13 # 답글

    오늘도 드리고 싶은 조언.

    XE, 워드프레스, 드루팔, 줌라가 괜히 있는게 아닙니다. 그냥 있는거 씁시다.
  • 희망의빛™ 2015/10/20 17:26 # 답글

    Hide_D, shaind, 나인테일// 아 ue.php 페이지가 euc-kr 로 돼 있어서 발생하는 문제로군요. UTF-8 문자를 euc-kr 페이지에서 로드하니 UTF-8을 euc-kr로 변환하는 과정에서 인코딩이 어긋난 케이스로군요. ue.php 페이지의 인코딩을 utf8 로 맞추니 제대로 "칼럼2.jpg" 가 보입니다. ㅎㅎ 크롬의 버그가 아니라 인코딩 문제였군요. ^^; 세 분이 힌트 주셔서 알아내었네요. ㅋㅋ

    ue.php 페이지를 수정했으니 궁금하신 분들은 다음 링크에서 다시 "%EC%B9%BC%EB%9F%BC2.jpg" 문자를 함 변환해 보시기 바랍니다. http://www.blrun.net/ue.php 입니다. 제대로 보입니다.
  • Hide_D 2015/10/20 17:34 #

    "모든 코드가 UTF-8로 되어있으면 아무런 문제가 발생하지 않는다." 는 걸 빨리 깨달으시면 좋겠네요.
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색