2012-11-27 4 views
0

일부 사용자의 입력 양식을 이스케이프 처리하려고합니다.htmlentities 및 프랑스어 문자

if(!empty($_SESSION['descr'])) 
{ 
    $descr = htmlentities($_SESSION['descr']); 
    $descr = stripslashes($descr); 
    $descr = html_entity_decode($descr); 

    echo"<textarea cols=\"50\" rows=\"10\" name=\"descr\" >".$descr."</textarea>"; 
} 
else 
{ 
    echo "<textarea cols=\"50\" rows=\"10\" name=\"descr\" ></textarea>"; 
} 

나는 사용자가 다음이 올바르게 표시되지 않습니다 일부 프랑스어 문자를 넣으면 그때 깨달았 첫 번째 장소에서의 html_entity_decode()를 사용하지 않았다. html_entity_decode()를 사용하는 방식으로 저장합니까?

답변

0

당신은 문자를 집어 ISO-8859-15에 문자열의 인코딩을 변경해야하는 LATIN-1 미스 (즉 프랑스어 문자) :

$descr = htmlentities($desc,ENT_COMPAT,'ISO-8859-15'); 

ENT_COMPAT은하지 않을 수 있습니다 당신이 찾고있는 플래그 for,하지만 manual에서 자막을 찾을 수 있습니다.

+0

ISO-8859-15 대신에'UTF-8'을 추천합니다. 사용자가 그리스어, 러시아어 또는 히브리어 문자를 입력하면 어떻게 될까요? UTF-8 이외의 다른 것을 추천하는 것은 현명하지 않습니다. – dotancohen

+0

동의했다, 내가 생각할 수있는 유일한 다른 옵션은 지루한 지 16 진수 배열 대 문자 목록의 문자열 대체를 사용하는 것이다. –

관련 문제