以前は html エンコーディング タイプが ISO-8859-1 に設定されていたシステムを入手したため、すべての漢字が"&\#36830;&\#34915;&\#35033;"
.
私の質問は、上記の形式を中国語の単語に変換するにはどうすればよいUTF-8
ですか?
参考までに、utf8_decode、iconv で試してみましたが、どれもうまくいきません。:(
どうもありがとうございました。
以前は html エンコーディング タイプが ISO-8859-1 に設定されていたシステムを入手したため、すべての漢字が"&\#36830;&\#34915;&\#35033;"
.
私の質問は、上記の形式を中国語の単語に変換するにはどうすればよいUTF-8
ですか?
参考までに、utf8_decode、iconv で試してみましたが、どれもうまくいきません。:(
どうもありがとうございました。
その文字列の現在のテキスト エンコーディングは、実質的ではありません。そこにあるのは HTML エンティティです。ISO-8859 や UTF-8 などの基本的な「物理」エンコーディングとはほとんど関係がありません。必要なのは、これらの HTML エンティティを特定のエンコーディング (この場合は UTF-8) の文字のバイト表現にデコードすることです。したがって:
echo html_entity_decode('连衣裙', ENT_COMPAT, 'UTF-8');
// 连衣裙
以下を使用する必要があります。
utf8_encode($data);
デコードせずに、現在の ISO-8859-1 を UTF-8 に変換します。
strtolower()、strtoupper()、ucfirst() などの一部のネイティブ PHP 関数は、UTF-8 文字列で常に正しく機能するとは限りません。可能な解決策: 最初にラテン語に変換するか、次の行をコードに追加します。
setlocale(LC_CTYPE, 'C');
BOM (Byte-Order Marker) UTF-8 ファイル マーカーを使用して PHP ファイルを保存しないように注意してください (お使いのブラウザーでは、サイトの PHP ページ間にこれらの BOM 文字が表示される場合があります)。
参考までに:
ISO-8859-1 => アルバニア語、ブラジル語、カタロニア語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ポルトガル語、ノルウェー語、スペイン語、スウェーデン語
UTF-8 => 中国語 (簡体字)、中国語 (繁体字)、日本語、ペルシア語
文字参照を文字に変換できるツールはたくさんありますが、特に参照がすべて 10 進数であることがわかっている場合は、そのようなツールを作成するのはかなり簡単です。したがって、答えはソフトウェア環境に大きく依存します。
たとえば、個々の HTML ドキュメントに対してこのような変換を行うには、BabelPadエディターを使用できます: コマンド Convert → Numeric Character References (NCR) → NCR to Unicode を実行し、結果を UTF-8 として保存します。