2

私はこの文字列を持っています:

dsfssdsdfdsf « ظ…ط¯ظˆظ†ط© ط£طظ…ط¯ ط§ظ„ط®ظˆط§ط¬ط©</p>

UTF-8 でエンコードされています。リモート ページから抽出し、file_get_contents 関数を使用して内容を取得しました。リモート ページのエンコードは UTF-8 です。

今、この文字列をテーブルエンコーディングが latin1 であるデータベースに挿入して、文字セット ISO-8859-1 を持つ html ページに表示したいと思います。

エンコーディングを UTF-8 から ASCII に、または ISO-8859-1 に、さらに Windows-1256 のような他のエンコーディングに変換しようと何度も試みましたが、成功しません。文字列が奇妙な文字で表示されます。デフォルトの文字列がアラビア文字を含む ,

エンコーディングの失敗した結果の例:

dsfssdsdfdsf â« ã˜â¸ã¢â€â¦ã˜â·ã‚â¯ã˜â¸ã‹â†ã˜â¸ã¢â€â ã˜â·ã‚⩠㘠·ã‚£ã˜â·ã‚âã˜â¸ã¢â€â¦ã˜â·ã‚⯠ã˜â·ã‚â§ã˜â¸ã¢â€âžã˜â· ã‚®ã˜â¸ã‹â†ã˜â·ã‚â§ã˜â·ã‚â¬ã˜â·ãã©</p>

dsfssdsdfdsf « ãÏæäÉ ãÍãÏ ÇáÎæÇÌÉ

4

1 に答える 1

6

UTF-8 文字列がある場合は、それらを UTF-8 またはバイナリとしてデータベースに保存するため、データベースにはエンコーディングを変更しない列が必要です。ISO-8859-1 エンコーディングを使用すると、文字列が破壊されます。

ISO-8859-1 エンコーディングを使用する HTML ページで、データベースから文字列を再エンコードし、サポートされている文字については ISO-8859-1 に再エンコードし、その他のすべての文字については HTML エンティティを使用します。できるPHPの機能については次のmb_convert_encodingとおりです。

$usascii = mb_convert_encoding($utf8, 'HTML-ENTITIES', 'UTF-8');
于 2012-11-22T09:16:09.430 に答える