2017-05-19 5 views
0

내 PHP 스크립트입니다 다음과 같은 문자열을 포함하는 MySQL의 테이블에서 점점 행 : 반드시 htmlspecialchars "금지 코드 포인트"유효성 검사 오류

$string = 'ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨'; 

없이 브라우저에 문자열 이러한 종류의 에코 할 수있는 방법이 있나요 HTML5 유효성 검사기를 통해 문서를 실행할 때 "금지 된 코드 포인트"가 표시됩니까?

htmlspecialchars($string); 
htmlspecialchars($string, ENT_SUBSTITUTE, 'UTF-8'); 
htmlspecialchars($string, ENT_DISALLOWED, 'UTF-8'); 
htmlspecialchars(mb_convert_encoding($string, 'UTF-8'); 

하지만, 이러한 식의 모든 여전히 "금지 코드 포인트"오류가 발생 :

나는 다음과 같은 노력했다. 웹 페이지의 인코딩은 이미 메타 태그를 통해 UTF-8로 설정됩니다

<meta charset="UTF-8"> 

답변

0

솔루션이었다 :

htmlspecialchars($string, ENT_SUBSTITUTE | ENT_DISALLOWED); 

이이 UTF-8로 가능한 한 많은 문자를 변환하고 다른 모든 것들을 제거.

1

PHP의 기능 htmlentities() 당신이 찾고있는 무엇을 할 수있다. 이 함수는 제공된 문자를 HTML 엔터티로 변환합니다. 예를 들어

:

$string = 'ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨'; $string = htmlentities($string); echo $string;

오류없이 HTML 페이지에 표시 할 수있는 &iuml;&frac14;&rsquo;&atilde;&curren;&atilde;&reg;&auml;&sup1;&sup3;&eacute;&hellip;&cedil;&egrave;&OElig;&atilde;&reg;&ccedil;&uml;uml;ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨ 당신의 문자열을 변환합니다. 는 여기에서 찾을 수이 기능에

더 많은 정보 : 나를 위해 일한 https://secure.php.net/manual/en/function.htmlentities.php

+0

감사합니다. 그러나, 나는 여전히 잘못된 문자들로 끝났다. –