問題は、プログラムによって異なる文字を表現する方法が異なることです。これは、文字エンコーディングと呼ばれます。ブラウザ、サーバー、および PHP コードは現在、使用しているエンコーディングについて混乱しています。これは、UTF-8
文字とANSI
コードが混在しているためです。
エンコーディングについて詳しくは、http: //vlaurie.com/computers2/Articles/characters.htmをご覧ください。
UTF-8 PHP サイトを作成するときは必ず 3 つのことを行います。次の 3 つのことで問題を解決できます。
PHP UTF-8 ヘッダーを追加する
これをコードの先頭に追加します。
<?php
header('Content-Type: text/html; charset=utf-8');
...
これにより、ANSI ではなく UTF-8 を使用してこのドキュメントを解析するように他のサーバーとブラウザに指示されると思います。詳細については、こちらをご覧ください:
PHP を使用して HTTP ヘッダーを UTF-8 に設定する
HTML UTF-8 メタ タグを追加する
返される HTML の先頭に次のコードを追加します。
<!doctype html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
...
これにより、ブラウザーは文字を (ANSI ではなく) UTF-8 で読み取るようになります。詳細については、こちらをご覧ください:
PHP を使用して HTTP ヘッダーを UTF-8 に設定する
PHP ファイルを BOM なしの UTF-8 として保存する
デフォルトでは、通常、ファイルはUTF-8 Å` 文字を適切にANSI
エンコードして保存されます。. If you want to work with international characters, then you need to save them in
encoding. This will let you work with the
テキスト エディターとして Notepad++ を使用している場合は、[エンコード] メニューでドキュメントのエンコードを設定できます。に設定しEncode in UTF-8 without BOM
ます。
ガッチャ
UTF-8 without BOM
と同じではありませんUTF-8
。多くの場合、UTF-8 ファイルには、そのファイルが UTF-8 ファイルであることを示す 3 バイトのデータが先頭に追加されます。これはByte Order Mark
(BOM) と呼ばれます。BOM の詳細については、http ://www.arclab.com/products/amlc/utf-8-php-cannot-modify-header-information.html をご覧ください。
とにかく、ほとんどのプログラムはファイルが UTF-8 であることを認識できるため、BOM は冗長です。BOM なしで保存しないと、おそらく次のようなエラー メッセージが表示されます。
Warning: Cannot modify header information – headers already sent
このエラー メッセージが表示された場合は、BOM に問題がある可能性があります。