3 に答える
ページのエンコーディングをUTF-8としてマークすると、この問題は解消されます。Firefoxは、このヒントがないとエンコーディングの自動検出に失敗することもあります。また、IEのエンコーディングを手動で一度変更した可能性があるため、マークされていないページの新しいデフォルトになります。
これをあなたの中に入れてください<HEAD>
:
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
コンテンツが実際にはUTF-8にない場合は、別の方法を使用する必要があります。FORMには、ANSI以外のコードページ文字をUTF-8として送信することをIEに示唆するhtml属性がありますが、正しいコンテンツタイプを使用する方がはるかに優れています。
また、アドレスバーは、結果のテキストを表示するのに最適な場所ではない可能性があります。前回チェックしたときに、ACP以外の文字では確実に機能しなかったためです。実際のリクエストデータを見ていることを確認してください。
特定のWebページではなく、ブラウザのアドレスバーまたは検索ボックスにテキストを入力することについて話している場合、英語のWindows7ではこの問題を再現しません。おそらく非常に古いバージョンのWindowsを使用していてシステムのANSIコードページにその文字が含まれていません。Win95 / Win98/WinMEには確かにその問題があります。
追加のために編集:IE 8では、このコンテンツを含むページに指定した文字を入力すると、期待どおりに機能します。これをFiddlerで確認しました。あなたが抱えている問題は、おそらくこれまでに説明したものとは異なります。
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<form accept-charset="utf-8" method="get" action="http://www.example.com/something">
<input type="text" name="q">
<input type="submit">
</form>
</BODY>
</HTML>
ページ自体に代替エンコーディングを使用していない限り、実際にはaccept-charsetは必要ありません。しかし、私は説明のためにそれを残しています。それが実際に役立つためには、少なくとも以前のバージョンのIE(状況が変更されている可能性があります。私の同僚がIE5などで動作を指定しました)では_charset_
、ブラウザーにマークを付けるように促す値のない非表示の「」フィールドが必要です。実際に使用した文字セットですが、utf-8ページでは不要です)。
そもそも、IEはUTF-8では漢字を「そのまま」送信できると考えていますが、FirefoxはそれらをURLエンコードする必要があると考えています。
有線でGETリクエストを見たことがありますか?それは実際には3バイトのシーケンスであり、それを表示するために使用しているツールがそれを?に減らしているに違いありません。
It can either be font installation or URL encoding issue
One of main issue which I have seen when dealing with CJK characters is the installation of East Asian Language fonts not done by default when OS is installed. These characters show up properly in MS Word even without installation being done. To make sure all applications in OS can deal with CJK (Chinese, Japanese and Korean), doing the below exercise is better
- Go To Control Panel
- Select Regional And Language Options
- Go to language tab
- Select checkbox to install fonts for East Asian Languages
Hopefully you have the windows CD with you to proceed with this.
After that IE8 hopefully would show characters properly.
Also in case you are doing any url encoding make sure you always use UTF-8 as the character encoding when dealing with non ASCII characters.