私はここで新しいので、何か間違ったことをしていたら申し訳ありません。
ユーザー入力を別のページに送信するフォームがあります。ユーザーは、ä、ö、é などを入力する必要があります。次のすべてをドキュメントに配置しました。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
header('Content-Type:text/html; charset=UTF-8');
<form action="whatever.php" accept-charset="UTF-8">
私も試しました:
ini_set('default_charset', 'UTF-8');
他のページが読み込まれると、次のようなユーザー入力を確認する必要があります。
if ( $_POST['field'] == $check ) {
...
}
しかし、'München' のようなものを入力すると、PHP は 'München' と 'München' を比較し、TRUE をトリガーする必要がありますが、TRUE をトリガーすることはありません。どこでもUTF-8が指定されているため、UTF-8をサポートしていないか構成されていないため、サーバーが別のもの(別のスレッドで読んだWindows-1252)に変換していると推測しています。本番環境にロードする前に、ローカル サーバーで Apache を使用しています。デフォルト設定を変更していません (また、変更方法もわかりません)。私はWindows 7で作業しており、ファイルをANSIでエンコードしてNotepad ++で編集しています。bin2hex('München')
「4dc3bc6e6368656e」を取得した場合。
I の場合echo $_POST['field'];
、「München」が正しく表示されます。
私は説明のためにあらゆる場所を調査しましたが、私が見つけたのは、既に持っているタグ/見出しを含める必要があるということだけです.
どんな助けでも大歓迎です。