2

私が現在取り組んでいるウェブサイトは、さまざまなソース(人間が入力したもの)からデータを収集しています。データはデータベースのNvarcharフィールドに保存されています。現在、サイトは、メタタグを介して文字セットがUCS-2であることを指定しています。これまで、このサイトでは英語での回答が必要でした。間もなく、少なくとも一部のフィールドを母国語(この場合は中国語)で入力できるようにする/要求する予定です。サイトに関するいくつかの調査やその他の投稿に基づくと、UCS-2とUTF-16はほとんど同じものですが、技術的な違いがいくつかあります。重要な場合、これはSQLServerデータベースで実行されているasp.netWebサイトです。だから私の質問は:

メタタグを変更してUTF-16を指定する理由はありますか?

エンコーディングを変更した場合、文字の表示方法に問題はありますか?(現在のデータはほとんど/すべて英語なので同じように表示されるはずですが、それを確認したいと思います)

4

1 に答える 1

4

UCS-2はUTF-16の厳密なサブセットであり、基本多言語面(つまり、U+0000からU+FFFFまで)でのみ文字をエンコードできます。補助プレーン(比較的まれな漢字を含む)で文字を表現する必要がある場合は、2つの16ビットコードユニット(「サロゲート」)のペアを使用してエンコードする必要があります。その場合、データは有効なUCS-2ではありません。ただし、UTF-16として宣言する必要があります。

エンコーディング仕様をUTF-16に簡単に切り替えることができれば、「UTF-16」の意味を知らない古いソフトウェアによってデータが消費されていない限り、すぐに切り替えない理由はほとんどありません。

于 2012-09-18T18:11:08.897 に答える