2009-09-02 5 views
3

UTF-8に設定されたHTMLページがある場合。 と入力し、フォームにbig5のエンコード文字を入力して提出します。 サーバ側ではどのようなエンコーディングですか? は自動的にUTF-8に変換されますか? またはそれはどのように動作しますか? ありがとう!どのようなエンコーディングですか?

補足1: 実際、私は本当によくわからないのですが、なぜブラウザがどのエンコーディングを使用するかを決めることができますか?エンコードはIMEによって生成されたためです。例えば:私は漢字を入力するために使用されたツールですか?

supplement2: ちょうど「マイケル・マドセン」とは、何とどんなに私の入力フォーム内の文字、それがすることを、回答の下に、そしてどのようにこれを処理するASP.NETできるで言ったことと同じようにすべての場合常に破損することはありませんが、JSPはできません。

答えて

3

ブラウザはUnicodeで動作します。文字がそこに入力されると、内部的にUnicodeとして格納されます。フォームが送信されると、適切なエンコーディング、通常はページのエンコーディングで文字が出力されます。

Big5ドキュメントのコピー/貼り付けについて話している場合は、クリップボードに挿入されたときに既にUnicodeに変換されています。エディタによっては、ドキュメントがロードされていることもあります。

IMEを使用して文字を入力する方法については、IMEがUnicodeのみで動作する必要があり、したがってBig5エンコーディングが関与しないため、問題がありません。そうであれば、とにかくUnicodeとの変換を行う途中にいくつかのレイヤーがあるので、その部分に関係なく、ブラウザはソースコードを知りません。

+0

なぜですか?システムは自動的にbig5からutf-8に文字列を変換できますか? – MemoryLeak

+1

はい。オペレーティングシステムは、各エンコーディングの値から実際の文字に移動する方法を知っています。実際の文字は、オペレーティングシステムが何かをしているときにオペレーティングシステムの内部エンコーディングを使って表現されます。そのため、従来のアプリケーションはWindows上で動作しますが、WindowsはUTF-16を内部的に使用していますが、言語固有のコードページを使用する従来のアプリケーションは互換性レイヤーを呼び出すことができます。変換されました(API関数から返されたテキストももちろん逆変換されます)。 –

+0

ブラウザはUnicode対応であるため、変換せずにオペレーティングシステムによって与えられたものを理解して処理することができます。フォームが送信されると、システムエンコーディングからサーバーが要求したエンコーディングに変換され、変換されたテキストが送信されます。 –

0

ブラウザはbig5で投稿を送信することができ、サーバーはそれを処理できるはずです。しかし、「ビッグ5をコード化して中国語を入力する」というのはどういう意味ですか?文字を入力するときは、どのエンコーディングを使用するかはブラウザによって異なります。

+0

実際に私は本当によく分からないのですが、なぜブラウザがどのエンコーディングを使用するかを決めることができますか?エンコードはIMEによって生成されたためです。例えば:私は漢字を入力するために使用されたツールですか? – MemoryLeak

+0

これはちょうど適切な方法でブラウザにテキストデータを取得しようとしています。重要なのはテキスト値であり、エンコーディングは関係していません。 OS、ブラウザ、およびIMEによって、さまざまな方法で発生する可能性がありますが、ブラウザがどのUnicode文字を送信するかを知っている限り、好きなエンコーディングを使用してヘッダーに入れることができます。 –

+0

私たちが見ることができるのは "テキスト値"ですが、コンピュータはエンコーディングをHEX値のようにしか認識できません。したがって、IMEで文字を入力してbig5文字を生成すると、ブラウザはそれを自動的にUTF-8に変換しますか? – MemoryLeak

関連する問題