11

ASP.NET MVC、MS SQL、IISを使用しています。プロフィール情報に漢字を使用しているユーザーが何人かいます。ただし、この情報を表示すると、として表示されæŽå¼·è¯ますが、データベースでは正しいです。現在、HTMLページのUTFはUTF-8に設定されています。UTF-16に変更する必要がありますか?これから生じる可能性のあるいくつかの問題があることを理解していますが、私の選択は何ですか?

4

2 に答える 2

28

UTF-8 と UTF-16 は、まったく同じ文字セットをエンコードします。UTF-8 が漢字をカバーしておらず、UTF-16 がカバーしているわけではありません。UTF-16 は一様に 16 ビットを使用して文字を表します。一方、UTF-8 は文字に応じて 1、2、3、最大 4 バイトを使用するため、ASCII 文字は 1 バイトとして表されます。このウィキペディアの記事から始めて、その背後にあるアイデアを理解してください。

そのため、UTF-16 に切り替えても役立つ可能性はほとんどありません。上でリンクしたSOの質問で説明されているように、事態が悪化する可能性があります。セットアップの別の場所に問題があり、ASCII 以外または Latin-1 以外の文字が正しく考慮されていません。セットアップのすべての部分が UTF-8 で機能することを確認してください。

于 2010-10-05T14:59:47.073 に答える
6

UTF コーディングは、Unicode 文字を表現する能力において同じように機能するはずなので、UTF-16 に切り替えても役に立ちません。どこかにエンコードの問題があり、UTF-16 を使用すると、別の間違った HTML 表現になるだけです。もちろん、ASCII 以外の文字をエンティティとして単純にエンコードし、ワイド文字をサポートするライブラリがある場合は、スイッチによって問題が解決される可能性があります。ただし、ユーザーが気付くことはめったにありませんが、2 つのワイド文字が必要な文字もあり、これらは依然として間違って表示されます。最良のオプションは、HTML を生成するものは何でも UTF-8 を正しく解釈することです。

于 2010-10-05T14:56:04.530 に答える