게시판등을 보면 특정 한글이 "#4022;" 형식으로 코드화되는걸 볼 수 있는데요.
범인은 htmlspecialchars() 였습니다.
오타나 해괴한 통신용어를 사용할 경우에 위와 같은 문제가 발생합니다.
위 함수를 사용하지 않으면 원래 글자가 그대로 나옵니다.
해결방법은 htmlspecialchars()대신..
$new_string = ereg_replace('<','&lt;',$string);
이렇게 하시면 되겠습니다. 물론 '>'도 '&gt;'로 변경하면 되겠지만 '<'만 바까죠도 잘 됩니다.
아래 대체함수를 소개합니다.
// htmlspecialchars 가 한글을 깨먹으니까. 새로정의한다.
function htmlspecialchars2($str) {
$str = str_replace( "&", "&", $str );
$str = str_replace( """,""", $str );
$str = str_replace( "'","'", $str );
$str = str_replace( "<", "<", $str );
$str = str_replace( ">", ">", $str );
return $str;
}
|