η의 URL 인코딩은 %CE%B7
입니다. 하지만 PHP에서 쓸 때 이상한 기호가 생깁니다. echo urldecode("%ce%b7");
PHP의 urlencode가 다른 URL 인코딩을 사용하는 이유는 무엇입니까?
대신에 echo urlencode("η");
을 쓰면 %26%23951%3B
이됩니다. %CE%B7
을 사용할 수없는 이유는 무엇입니까?
문제점
솔루션은 우리가 TYPO3을 사용하는 것입니다. 일부에서는 내부 처리에 유니 코드를 사용하지 않습니다. typo3에 $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
을 설정하자마자 echo urldecode("%ce%b7");
의 결과가 정확합니다.
왜 echo urlencode("η");
이 나에게주는 메시지 %26%23951%3B
은 Joni의 답변을 참조하십시오.
불행하게도,'에코의 html_entity_decode ('η'거짓 'UTF-8');'η를 인쇄하지 않습니다. 이미'header ('Content-Type : text/html; charset = utf-8');가 포함되어 있습니다. 그리고 브라우저는 유니 코드로 보여주는 것처럼 가장합니다. 사실,'echo urldecode ("% 26 % 23951 % 3B");는 η를 출력합니다. – Raoul
실제로'echo urldecode ("% 26 % 23951 % 3B")'는'η'을 출력합니다. 웹 브라우저에서 결과를 보는 경우, 브라우저는이 여러 문자의 시퀀스를 'η'로 표시합니다. 브라우저가'Content-Type' 헤더에도 불구하고 올바르게 인코딩 된 UTF-8 문자를 표시하는 것을 거부하는 이유는 페이지를 보지 않고도 말하기 어렵습니다. – Joni
좋아요, 이제 제 문제를 봅니다. 그 점을 지적 해 주셔서 감사합니다. 하지만 여전히'echo urldecode ("% ce % b7");가 왜 올바르게 표시되지 않는지 이해할 수 없습니다. – Raoul