2

既存のPHPWebページをUTF-8エンコーディングを使用するように変換しようとしています。

そうするために、私は次のことをしました:

  1. Webページの先頭にあるメタコンテンツタグの文字セットとしてUTF-8を指定しました。
  2. php.iniでdefault_charsetをUTF-8に変更します。
  3. php.iniファイルのiconvエンコーディングとしてUTF-8を指定しました。
  4. AddDefaultCharset UTF-8を使用して、.htaccessファイルでUTF-8を指定しました。

それでも結局、mb_internal_encoding()をエコーすると、ISO-8859-1と表示されます。ここで何が欠けていますか?auto_prependを使用して、デフォルトのエンコーディングをUTF-8に変更するスクリプトをアタッチできることはわかっていますが、何が欠けているのかを理解しようとしています。

ありがとう

4

2 に答える 2

4

mb_internal_encoding()スクリプト自体の出力には影響しません。マルチバイト文字列関数を使用する場合のデフォルトのエンコーディングと、POSTおよびGET入力の変換に影響します。

設定するだけ

mbstring.internal_encoding='UTF-8'

php.iniファイル内、またはプログラムで次のコマンドを使用します。

mb_internal_encoding('UTF-8');

mb_関数と言えば、これらを使用するようにスクリプトを書き直す必要があります。たとえば、などmb_strlen()の代わりに使用します。strlen.()

また、どのHTTPコンテンツタイプヘッダーが出力されているかを確認しますが、これまでに行ったことからは問題ないはずです。

データベースを使用している場合は、それも変換し、データベースに接続するときにUTF-8を使用していることを指定する必要があります。

于 2009-11-22T22:37:31.067 に答える
0

ドキュメントには、次を使用してその変数を設定できると記載されています

/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

これはあなたの問題を取り除くはずです:)

于 2009-11-22T22:24:35.277 に答える