2017-05-19 16 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'); 

が、これらの表現の全てはまだ「禁断のコードポイント」エラーになります。 Webページのエンコーディングはすでにメタタグを経由して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

ありがとうございます。しかし、私はまだ無効な文字で終わった。 –