1

でエンコードされた MySql テーブルがありますlatin1_swedish_ci。私のアプリは Unicode 文字を使用しているため、utf8 データを格納する列を照合を使用するように更新しutf8_unicode_ci、テーブルの照合も変更しましたutf8_unicode_ci(utf_8 を処理しない他のすべての列はlatin1_swedish_ci照合にそのまま残されます)。

入力は、箇条書きのような utf-8 文字を含む XML として提供されます。また、PHP の DomDocument の loadXML() 関数は入力の utf-8 エンコードを必要とするため、次のように解析する前に XML をエンコードしています。

$doc->loadXML(utf8_encode($Input));

ここで、utf-8 データをテーブル列に挿入する前に、PHP のutf8_decode()関数を使用してデータを適切に格納します。(これを行わないと、Web ページに表示したときに箇条書きの文字がジャンク文字として表示されます)。

問題は、出力をエコーし​​ている Web ページに改行が表示されない改行文字&#x0D;にありますが、phpMyAdmin でレコードを表示すると、改行が表示されます (firebug を使用<br>すると、テキスト内にタグが表示されます)。

私は何を間違っていますか?次のメタ タグを使用して、html ページのエンコーディングを設定しようとしましたが、それも機能しませんでした。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4

2 に答える 2

2

nl2br() を使用するとどうなりますか?

echo nl2br($output);
于 2012-04-13T18:27:21.443 に答える
1

nl2br()改行を改行に変えるために使用するのを忘れています。

于 2012-04-13T18:25:56.173 に答える