0

App.encoding を UTF-8 に設定した CakePHP を使用しています。これ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><head>、MySQL データベースに UTF-8 Unicode Encoding と utf8_general_ci 照合に設定されています。"encoding"=>"UTF8"database.php 接続の詳細にもあります。

「£」記号をデータベース テーブルに保存し、コマンド ライン MySQL を使用して表示すると、文字が正しく表示されます。

CakePHP を使用してデータベース テーブルから行をフェッチし、Web サイトに出力すると£、意図した£シンボルの代わりに表示されます。

ただしutf8_decode()、データを出力するために使用すると、正しく表示されます。

これは正しいです?htmlentities() を使用して £ 記号を変換しようとしまし&pound;たが、代わりに出力され&Acirc;&pound;ます! charset に追加のパラメーターを使用する場合でも。

おそらく誰かが助けることができます-ここで何かを見逃したに違いありませんが、すべてのヘッダー、メタタグなどが一貫してUTF-8である場合、文字は(テキストエリアHTMLタグなどで)正しく表示されるはずだと思いましたか?

4

3 に答える 3

0

すべてが UTF8 の場合は"encoding"=>"UTF8"、database.php の接続の詳細を削除します。

$conn = mysql_connect($server, $username, $password);
//mysql_set_charset("UTF8", $conn); // REMOVED. ;)
mysql_select_db($database, $conn);
于 2014-01-18T23:57:26.430 に答える
0

UTF-8 を安全にエンコードするために、3 番目のパラメータで htmlentities を使用できます。

htmlentities("£", ENT_COMPAT, "UTF-8")
于 2012-10-10T14:42:26.803 に答える