HTMLのフォームから送信されるテキストの文字コードは、通常、そのHTMLの文字コードに従います。
しかしWebブラウザによっては、HTMLの文字コードとは無関係に、別の文字コードでテキストを送信してくる場合があります。
こうしたWebブラウザに対応する方法として、フォーム内にテスト用文字列を紛れ込ませ、それによって判定を行う、というものがあります。
例えば、以下のように…
html
1<form action="/edit" method="post" accept-charset="UTF-8"> 2 <textarea name="comment"></textarea> 3 <input type="hidden" name="encode-hint" value="雀の往来"> 4</form>
「雀の往来
」は、UTF-8以外の文字コードに変換された場合、ある程度正しく判定することが可能です。
これは、「雀の往来
」に使用されている文字が他の文字コードに変換された場合、重複しない文字が含まれているためで、これにより文字コードの誤認識を抑制でき、大体正確な入力文字コードの判定が可能です。
- 文字コードの部屋 -- Web のエンコード
- 「美乳」で文字化けが直るって本当?
- Yahoo! ヘルプ - 表示と印刷に関する
- PHP GET/POSTメソッドでの日本語の文字化け防止 - 三浦克介 - 情報科学研究科 - 大阪大学
- BugTrack/296 - PukiWiki-dev
- PHPの文字化けについて
- フォームでの文字化け_PHP - FreeStyleWiki
質問は、より多くの文字コードを識別可能なテスト用文字列は何なのか?
日本語圏ではUTF-8、Shift_JIS、EUC-JP、ISO-2022-JPが判定できれば十分ですが、多言語化を考える場合、日本ではマイナーな文字コードにも対応させたほうが良いのではないかと考えています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。