253

ANSI エンコーディング形式とは何ですか? システムのデフォルト形式ですか?ASCII との違いは何ですか?

4

10 に答える 10

289

ANSIエンコーディングは、システム(通常はWindows)の標準コードページを指すために使用される少し一般的な用語です。これは、Western/USシステムではWindows-1252とより適切に呼ばれます。(他のシステム上の特定の他のWindowsコードページを表すことができます。)これは、追加の128文字コードを含むすべてのASCII文字を含むという点で、本質的にASCII文字セットの拡張です。この違いは、「ANSI」エンコーディングがASCIIのように7ビットではなく8ビットであるという事実によるものです(ASCIIは現在ほとんどの場合、MSBが0に設定された8ビットバイトとしてエンコードされています)。このエンコーディングが通常ANSIと呼ばれる理由の説明については、記事を参照してください。

「ANSI」という名前は、実際のANSI規格に対応していないため、誤った名称ですが、名前が固定されています。ANSIはUTF-8と同じではありません。

于 2009-03-31T16:34:15.957 に答える
41

厳密に言えば、ANSI エンコーディングなどというものはありません。口語的に ANSI という用語は、いくつかの異なるエンコーディングに使用されます。

  1. ISO 8859-1
  2. Windows CP1252
  3. Windows マシンの現在のシステム エンコーディング (Win32 API 用語)。
于 2009-03-31T16:58:32.997 に答える
25

むかしむかし Microsoft は、他のすべての企業と同様に 7 ビットの文字セットを使用し、ASCII をコア サブセットとして保持していましたが、適切なときに独自の文字セットを発明しました。その後、世界が 8 ビット エンコーディングに移行し、ISO-8859 ファミリなどの国際標準が存在することに気付きました。当時、国際規格を手に入れたいと思っていて、米国に住んでいた場合は、独自のブランドと番号で国際規格を再発行した米国規格協会 (ANSI) から購入しました (これは、米国政府が望んでいるためです)。国際規格ではなく、米国規格に準拠しています)。そのため、Microsoft の ISO-8859 のコピーでは、表紙に「ANSI」と記載されていました。当時、Microsoft は標準にあまり慣れていなかったので、ANSI が他にも多くの標準を公開していることを認識していません。そこで、彼らは ISO-8859 ファミリの標準 (および、当時は標準をよく理解していなかったので、彼らが発明した変種) を表紙の名前「ANSI」で参照し、それが Microsoft に伝わりました。ユーザー ドキュメント、したがってユーザー コミュニティに参加します。30年ほど前のことですが、今でも時々その名前を耳にします。

于 2014-09-22T08:41:58.350 に答える
16

ASCIIは、128個のシンボルを持つ7ビットのコードページを定義するだけです。ANSIはこれを8ビットに拡張し、シンボル128〜255にはいくつかの異なるコードページがあります。

このコードページを定義するのは実際にはISO/IEC 8859規格であるため、ANSIの命名は正しくありません。参考のためにISO/IEC8859を参照してください。ISO /IEC8859-1からISO/IEC8859-16までの16のコードページがあります。

Windows-1252もISO/IEC 8859-1に基づいており、主に128〜159の範囲に設定されたC1コントロールの範囲にいくつかの変更が加えられています。ウィキペディアによると、Windows-1252はISO-8859-1とも呼ばれます。 ISOと8859の間のハイフン。(信じられない!誰がそのようなことをしますか?!?)

于 2009-03-31T16:33:47.970 に答える
5

お使いの PC が「欧米」の PC ではなく、どのコード ページが使用されているかわからない場合は、次のページを参照してください: National Language Support (NLS) API Reference

[Microsoft はこのリファレンスを削除しました。Web アーカイブのNational Language Support (NLS) API リファレンスから取得してください。

または、レジストリを照会できます。

C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
    ACP    REG_SZ    1252

End of search: 1 match(es) found.

C:\>
于 2015-03-25T14:55:18.600 に答える
2

シングルバイト文字を使用する場合、ASCII形式で最初の127文字が定義されます。128〜255の拡張文字は、他の言語のサポートを制限できるように、さまざまなANSIコードページで定義されています。ANSIでエンコードされた文字列を理解するには、使用するコードページを知る必要があります。

于 2009-03-31T16:33:35.490 に答える
-4

ANSI (別名Windows-1252 / WinLatin1)は、ラテンアルファベットの文字エンコードであり、 ISO-8859-1にかなり似ています。ウィキペディアでそれを見てみたいと思うかもしれません。

于 2009-03-31T16:32:21.873 に答える