2013-06-05 3 views
0

내가 반드시 htmlspecialchars에서 UTF-8을 사용에 관한 약간의 혼란이() 함수 :UTF-8은 htmlspecialchars() 함수

htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); 

나는,이 (반드시 htmlspecialchars을 사용하여 않습니다 이해하지 않는 무엇) UTF-8 코드를 만들거나 htmlspecialchars()에 $ 문자열을 UTF-8로 알려서 엉망이되지 않도록하십시오. 내말은 우리가 지정하는 것입니까? 입력 또는 출력을 지정합니까?

희망적입니다. 고맙습니다.

답변

2

세 번째 매개 변수는 htmlspecialchars()에 유니 코드 문자열을 엉망으로 만들지 말라고 명령하는 것입니다. 입력 인코딩이 무엇인지 htmlspecialchars()에게 알려줘야합니다. 결과적으로 출력에서 ​​사용되는 인코딩이기도합니다.

PHP는 유니 코드를 지원하지 않으므로 사용하는 문자 세트에 신경 쓰지 않습니다. htmlspecialchars()의 매개 변수는 PHP에 바이트로 엉망이되지 않도록 지시하는 데에만 사용됩니다.

3

세 번째 매개 변수는 입력과 출력 모두에 사용됩니다. 문자 집합간에 변환하려면 외부에서 수행해야합니다. iconv 함수를 사용하여.

+0

나는 이해하지 못한다. 더 자세히 설명해 주시겠습니까? 둘 다 어떻게 지정합니까? 입력이 UTF-8이면 htmlspecialchars()의 출력이 UTF-8 일 수 있다고 말하고 있습니까? –

+0

입력이 UTF-8이고 세 번째 매개 변수로 UTF-8을 지정하면 출력은 UTF8이됩니다. UTF-8의 출력을 Latin1로 가져 오는 것이 목표 인 경우 변환을 수행하기 위해 htmlspecialchars 호출 후 iconv를 사용해야합니다. HTML 이스케이프 처리 및 문자 인코딩은 두 가지 다른 작업입니다. htmlspecialchars는 하나만 수행하지만 다른 것은 수행하지 않습니다. – asmecher

0

나는 설명서가 똑바로 앞으로이

약 변환에 사용되는 인코딩을 정의합니다 생각합니다. 생략하면이 인수의 기본값은 5.4.0 이전의 PHP에서는 ISO-8859-1이고, 이후에는 5.4.0 이후의 UTF-8입니다.

이것은 입출력에 관한 내용입니다.

관련 문제