2

1つの単純なエコー関数を含むPHPファイルがあります。

echo 'アクセスは撥ねりません。';

しかし、そのページにアクセスすると、次のように表示されます。

????????????

誰かが私を助けることができますか?また、ページエンコーディングをUTF-8に設定していますが、使用したすべてのブラウザでUTF-8に設定されているので、それを知っています。また、エコー関数の前にこれを行います。

mb_internal_encoding('UTF-8');

これは何をしますか?それは私を助けますか?必要なのは、静的な日本語の文字列をエコーできるようにすることだけです。

ありがとう!

4

4 に答える 4

7

これがうまくいかない可能性のある場所がいくつかあります。

まず、 header()を使用してphpで出力エンコーディングを設定していない場合

header('Content-type: text/html; charset=utf-8');

または、HTMLにメタタグを付けます。

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

php.iniの設定default_charsetを確認する必要があります。これはデフォルトでiso-8859-1になっている可能性があります

次に、phpスクリプトを保存しているコンテンツエンコーディングを確認する必要がある場合もあります。ASCIIまたはその他のラテン文字セットとして保存している場合は、文字が変更されます。

于 2009-10-16T21:36:54.910 に答える
1

わかった。UTF-8の内部文字列を処理するためにmbstring拡張設定を設定する必要がありました。この拡張機能は、PHP5.3.0の私のビルドでは標準です。

于 2009-10-30T22:40:51.000 に答える
0

UTF-16(拡張文字セット)に含まれる日本語の文字を印刷しているのではないでしょうか。

于 2009-10-16T21:44:42.910 に答える
0

私は簡単なテストを行ったところ、あなたの例は私のために機能するので、おそらくこれらの1つです:

  • ファイルはUTF-8では保存されませんが、Shift-JISなどの他のエンコーディングで保存されます。まともなエディタは、それが使用したエンコーディングを確認できるはずです
  • サーバーが不正なhttpヘッダーを送信しています。いくつかのツールを使用してヘッダーを確認し、結果を貼り付けることができますか?または、ブラウザから得た結果は?
  • ブラウザが互換性のないフォントを使用しています

UTF-8でファイルを保存し、コードを貼り付けました。サーバーはContent-Type:text/htmlでファイルを提供しています。charset = utf-8で、問題なく表示されます。mb_関数などを使用する必要はありませんでした。

于 2009-10-16T22:09:09.570 に答える