2

以前は html エンコーディング タイプが ISO-8859-1 に設定されていたシステムを入手したため、すべての漢字が"&\#36830;&\#34915;&\#35033;".

私の質問は、上記の形式を中国語の単語に変換するにはどうすればよいUTF-8ですか?

参考までに、utf8_decode、iconv で試してみましたが、どれもうまくいきません。:(

どうもありがとうございました。

4

3 に答える 3

1

その文字列の現在のテキスト エンコーディングは、実質的ではありません。そこにあるのは HTML エンティティです。ISO-8859 や UTF-8 などの基本的な「物理」エンコーディングとはほとんど関係がありません。必要なのは、これらの HTML エンティティを特定のエンコーディング (この場合は UTF-8) の文字のバイト表現にデコードすることです。したがって:

echo html_entity_decode('连衣裙', ENT_COMPAT, 'UTF-8');
// 连衣裙
于 2013-07-31T07:57:41.607 に答える
1

以下を使用する必要があります。

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 => 中国語 (簡体字)、中国語 (繁体字)、日本語、ペルシア語

于 2013-07-31T05:05:12.703 に答える
0

文字参照を文字に変換できるツールはたくさんありますが、特に参照がすべて 10 進数であることがわかっている場合は、そのようなツールを作成するのはかなり簡単です。したがって、答えはソフトウェア環境に大きく依存します。

たとえば、個々の HTML ドキュメントに対してこのような変換を行うには、BabelPadエディターを使用できます: コマンド Convert → Numeric Character References (NCR) → NCR to Unicode を実行し、結果を UTF-8 として保存します。

于 2013-07-31T07:48:15.627 に答える