質問

の違いは何ですか Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, 、 そして ANSI エンコーディング?

これらはプログラマーにとってどのような点で役立ちますか?

役に立ちましたか?

解決

リストを下に進むと、次のようになります。

  • "ユニコード" はエンコーディングではありませんが、残念なことに、多くのドキュメントでは、特定のシステムがデフォルトで使用する Unicode エンコーディングを指すためにこれを不正確に使用しています。Windows と Java では、これは多くの場合 UTF-16 を意味します。他の多くの場所では、UTF-8 を意味します。正確には、Unicode は特定のエンコーディングを指すのではなく、抽象文字セット自体を指します。
  • UTF-16:「コード単位」あたり 2 バイト。これは、.NET、および一般に Windows および Java の文字列のネイティブ形式です。範囲外の値 基本多言語面 (BMP) はサロゲート ペアとしてエンコードされます。(これらは比較的めったに使用されません。これを正しく理解している開発者はほとんどいないので、これは良い仕事だと思います。私はそう思うのではないかと非常に疑問に思っています。)
  • UTF-8:可変長エンコード、コード ポイントあたり 1 ~ 4 バイト。ASCII 値は、1 バイトを使用して ASCII としてエンコードされます。
  • UTF-7:通常、メールのエンコードに使用されます。メールは必要なのにメールはしないと思っているなら、それは間違いかもしれません。(これは、ニュースグループなどに投稿する人々についての私の経験にすぎません。メール以外では、実際にはまったく広く使用されていません。)
  • UTF-32:コード ポイントごとに 4 バイトを使用する固定幅エンコード。これはあまり効率的ではありませんが、BMP の外での作業が容易になります。.NET を持っています Utf32String 私の授業の一部として その他ユーティリティ 図書館、必要になったらどうぞ。(念のために言っておきますが、あまり徹底的にテストされていません。)
  • アスキー:下位 7 ビットのみを使用するシングルバイトエンコーディング。(Unicode コードポイント 0 ~ 127。) アクセントなどはありません。
  • ANSI:固定された ANSI エンコーディングは 1 つではなく、たくさんあります。通常、人々が「ANSI」と言うとき、それは「システムのデフォルトのロケール/コードページ」を意味します。 エンコーディング.デフォルト, 、そしてしばしば Windows-1252 ただし、他のロケールでもかまいません。

他にもあります 私のUnicodeページ そして Unicode の問題をデバッグするためのヒント.

コードのもう 1 つの大きなリソースは、 ユニコード.org これには、あなたがこれまでに作業することができるよりも多くの情報が含まれています。おそらく最も役立つ部分は、 コードチャート.

他のヒント

いくつかの読書あなたは、文字エンコーディングを始めるために:ジョエルソフトウェア上: 絶対最小すべてのソフトウェア開発絶対に、Unicodeとキャラクタセットについて(弁解を!)知らない必要がありますする

ところで - ASP.NETは、それとは何の関係もありません。エンコーディングは普遍的なものである。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top