什么是ANSI编码格式?它是系统默认格式吗? 它和ASCII有什么不同?
当前回答
基本上“ANSI”指的是Windows上的遗留代码页。请参阅Raymond Chen关于此主题的文章:
这是因为Windows代码页1252最初是基于ANSI草案,后来成为ISO标准8859-1。
在大多数代码页中,前127个字符与ASCII相同,但上面的字符有所不同。
然而,ANSI并不自动表示CP1252或拉丁1。
尽管有很多困惑,但您现在应该简单地避免这些问题,并使用Unicode。
其他回答
基本上“ANSI”指的是Windows上的遗留代码页。请参阅Raymond Chen关于此主题的文章:
这是因为Windows代码页1252最初是基于ANSI草案,后来成为ISO标准8859-1。
在大多数代码页中,前127个字符与ASCII相同,但上面的字符有所不同。
然而,ANSI并不自动表示CP1252或拉丁1。
尽管有很多困惑,但您现在应该简单地避免这些问题,并使用Unicode。
严格地说,没有所谓的ANSI编码。通俗地说,术语ANSI用于几种不同的编码:
ISO 8859 - 1 Windows CP1252 Windows机器上的当前系统编码(用Win32 API术语)。
ANSI encoding is a slightly generic term used to refer to the standard code page on a system, usually Windows. It is more properly referred to as Windows-1252 on Western/U.S. systems. (It can represent certain other Windows code pages on other systems.) This is essentially an extension of the ASCII character set in that it includes all the ASCII characters with an additional 128 character codes. This difference is due to the fact that "ANSI" encoding is 8-bit rather than 7-bit as ASCII is (ASCII is almost always encoded nowadays as 8-bit bytes with the MSB set to 0). See the article for an explanation of why this encoding is usually referred to as ANSI.
“ANSI”这个名字是不恰当的,因为它不对应任何实际的ANSI标准,但这个名字一直存在。ANSI与UTF-8不同。
ANSI(又名Windows-1252/WinLatin1)是拉丁字母的字符编码,非常类似于ISO-8859-1。 你可以去维基百科上看看。
从技术上讲,ANSI应该与US-ASCII相同。它指的是ANSI X3.4标准,这只是ANSI组织批准的ASCII版本。顶部位集字符的使用在ASCII/ANSI中没有定义,因为它是一个7位字符集。
然而,多年来DOS和随后的Windows社区对该术语的误用,已经使其实际含义成为“正在使用的任何机器的系统代码页”。系统码页有时也被称为“mbcs”,因为在东亚系统中,它可以是每个字符多字节编码。一些代码页甚至可以使用顶部清除字节作为多字节序列中的尾随字节,因此它甚至不严格兼容纯ASCII…但即使这样,它仍然被称为“ANSI”。
在美国和西欧的默认设置中,“ANSI”映射到Windows代码页1252。这与ISO-8859-1不同(尽管它们非常相似)。在其他机器上,它可能是其他任何东西。这使得“ANSI”作为外部编码标识符完全无用。