ANSI形式とは何ですか?


回答:


245

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

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


42
ANSIは単なる「わずかな」誤称ではなく、完全に間違った名前です。この名前は、それが参照するものはすべてANSI標準であることを明確に意味しますが、そうではありません。それは実際には白黒の問題です。そうは言っても、非常に広く使用されているため、行き詰まっています。
ネイトCK

1
私はANSIをWindowsコードページ1252ではなくコードページ437として認識しています。ANSIが掲示板システム用に作成されたグラフィックスを参照したとき、私はそれが事実であることをほぼ保証できます。
ロードスカーレット2013

@lordscarlet:ANSIはそれらを標準化していませんが、Windows-1252はスーパーセットであるため、(少なくともWindowsでは)最も近いものです。参照として、en.wikipedia.org / wiki / ANSI_codepage#ANSIを参照してください。
Noldorin 2013

4
「ANSI」は明らかにANSI標準を参照していませんが、ファイルを保存するときにメモ帳などで「エンコーディング:ANSI」を選択できるのは事実です。そして実際の質問は、「それはどういう意味ですか?」この答えは断然最高です。
Wernfried Domscheit 2018年

1
私の場合、ANSIはを参照していましたwindows-1254
ラマザンポ

59

技術的には、ANSIはUS-ASCIIと同じである必要があります。これはANSI X3.4標準を参照します。これは、単にANSI組織が承認したASCIIのバージョンです。トップビットセット文字は7ビット文字セットであるため、ASCII / ANSIでは定義されていません。

しかし、DOSおよびその後のWindowsコミュニティによるこの用語の誤用の数年は、「使用されているマシンのシステムコードページ」としての実用的な意味を残しています。システムコードページは、「mbcs」とも呼ばれます。これは、東アジアのシステムでは、文字ごとに複数バイトのエンコーディングになる可能性があるためです。一部のコードページでは、マルチバイトシーケンスの最後のバイトとしてトップビットクリアバイトを使用することもできるため、プレーンASCIIとの完全な互換性はありませんが、それでも「ANSI」と呼ばれます。

米国および西ヨーロッパのデフォルト設定では、「ANSI」はWindowsコードページ1252にマップされます。これはISO-8859-1と同じではありません(ただし、非常に似ています)。他のマシンでは、それは他の何でもかもしれません。これにより、「ANSI」は外部エンコーディング識別子としてまったく役に立たなくなります。


32

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

  1. ISO 8859-1
  2. Windows CP1252
  3. Windowsマシンでの現在のシステムエンコーディング(Win32 API用語)。

それは間違いです。Windowsコードページ1252はISO 8859-1に基づいて作成されましたが、完全に同じではありません。ANSIという用語は、ISO 8859-x標準を指します。
Patrik

17

昔々、Microsoftは他の人と同じように7ビット文字セットを使用しており、ASCIIをコアサブセットとして保持していましたが、適切なときに独自に開発しました。その後、世界は8ビットエンコーディングに移行し、ISO-8859ファミリなどの国際標準が存在することに気付きました。当時、国際標準を取得したいが米国に住んでいた場合は、独自のブランドと番号で国際標準を再発行したANSI(American National Standards Institute)から購入しました(これは、米国政府が国際規格ではなく、米国規格への準拠)。したがって、MicrosoftのISO-8859のコピーは表紙に「ANSI」とありました。マイクロソフトは当時の標準にあまり慣れていなかったため、ANSIが他の多くの規格も公開していることを理解する。そのため、彼らはISO-8859ファミリーの標準(および当時は標準を実際には理解していなかったために彼らが発明したバリアント)を表紙の名前「ANSI」で参照し、それがMicrosoftに浸透しました。ユーザードキュメント、したがってユーザーコミュニティに。それは約30年前のことですが、今日でも名前を聞くことがあります。


標準は業界のものだったので、プログラマーは新しい業界だったので標準に不慣れでしたか?
CoffeDeveloper 2015

1
Microsoftが設立された当時は、新しい産業ではありませんでした。
Michael Kay

マイクロソフトは、一般に相互運用性に対して問題があり、物議を醸す態度を持っています。1990年代後半に標準を直接排除するのではなく、「採用および拡張」することを決定したとき、それは顕著な変化でしたが、適切な相互運用性への責任あるアプローチではありませんでした。(あなたは可能性があり、その進捗状況を主張するだけ既存の標準に準拠している場合は不可能であるが、それは明らかにこの方法で、彼らはそれを行う主な理由はありません。)
tripleee

14

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

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

Windows-1252もISO / IEC 8859-1に基づいており、主にC1コントロールセットの範囲が128〜159に変更されています。ウィキペディアでは、Windows-1252はISO-8859-1とも呼ばれ、 ISOと8859の間のハイフン。


5

基本的に「ANSI」は、Windowsのレガシーコードページを指します。このトピックに関するレイモンドチェンの記事もご覧ください。

この原因は、Windowsコードページ1252が元々ANSIドラフトに基づいていたため、ISO規格8859-1になりました。

最初の127文字はほとんどのコードページでASCIIと同じですが、上位の文字は異なります。

ただし、ANSIはCP1252またはLatin 1を自動的に意味するわけではありませ

とはいえ、最近のそのような問題は単に避け、Unicodeを使用する必要があります。


4

お使いのPCが「Western」PCではなく、どのコードページが使用されているかわからない場合は、このページをご覧ください。NationalLanguage Support(NLS)APIリファレンス

[Microsoftはこの参照を削除し、web-archive 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:\>

2

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



-4

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


6
誰にとってもCP1252ではありません。それは地域に大きく依存します。
Joey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.