0

私のPHPページでは、製品の説明が悪名高い£の問題とともに表示されています。

あはは!ウェブサイト全体をUTF-8に移行することを忘れないでください。だから私:

  • mysql_set_charset('utf8');array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")コマンドの両方で指定されます。ウェブサイトをPDOに移行しているので、まだ移行プロセス中です。製品の説明が保存され、両方が読み取られるWebサイトの実際の部分は、新しいPDOメソッドを使用します。
  • ini_set('default_charset', 'utf-8');私のheader.phpページの冒頭で指定しました。
  • <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />HTMLページのheadタグで指定されます。表示されることを確認して、キャッシュの問題がないことを確認しました。
  • productsテーブルの照合をに変更しましたutf8_general_ci

ただし、エラーは引き続き発生します。これは、新製品や、製品を編集してポンド記号を削除して再度追加したときにも発生します。足りないものはありますか?

4

2 に答える 2

2

問題を見つけました。htmlentities()ブラウザーにエコーするときに、セキュリティのために文字列をスローしていました。私は投げるべきだった:

htmlentities($string, ENT_COMPAT | ENT_HTML401, "UTF-8");これを修正します。

于 2012-08-18T22:33:37.287 に答える
0

もう2つあります

  • セットするheader("Content-Type: text/html; charset=utf-8");
  • ファイルのエンコーディングがUTF-8であることを確認します(例:メモ帳でファイルを開き、UTF-8 ENCODINGとして保存します)
于 2012-08-18T11:09:03.230 に答える