Unicode、UTF、ASCII、ANSI格式差异

Unicode、UTF、ASCII、ANSI格式差异,unicode,character-encoding,ascii,ansi,utf,Unicode,Character Encoding,Ascii,Ansi,Utf,Unicode、UTF8、UTF7、UTF16、UTF32、ASCII和ANSI编码之间有什么区别 这些对程序员有什么帮助?让您开始学习字符编码的一些阅读资料: 顺便说一下,ASP.NET与此无关。编码是通用的。在您的列表中: “”不是一种编码,但不幸的是,许多文档不准确地使用它来表示特定系统默认使用的Unicode编码。在Windows和Java上,这通常意味着UTF-16;在许多其他地方,它意味着UTF-8。正确地说,Unicode指的是抽象字符集本身,而不是任何特定的编码 :每“代码单位

Unicode
UTF8
UTF7
UTF16
UTF32
ASCII
ANSI
编码之间有什么区别


这些对程序员有什么帮助?

让您开始学习字符编码的一些阅读资料:

顺便说一下,ASP.NET与此无关。编码是通用的。

在您的列表中:

  • “”不是一种编码,但不幸的是,许多文档不准确地使用它来表示特定系统默认使用的Unicode编码。在Windows和Java上,这通常意味着UTF-16;在许多其他地方,它意味着UTF-8。正确地说,Unicode指的是抽象字符集本身,而不是任何特定的编码
  • :每“代码单位”2个字节。这是.NET中字符串的本机格式,通常在Windows和Java中也是如此。(BMP)之外的值被编码为代理项对。这些过去很少使用,但现在许多消费者应用程序需要知道非BMP字符才能支持emojis
  • :可变长度编码,每个代码点1-4字节。ASCII值使用1字节编码为ASCII
  • :通常用于邮件编码。如果你认为你需要它,而你不是在做邮件,那你就错了。(这只是我在新闻组中发帖的经验——在邮件之外,它实际上根本没有被广泛使用。)
  • :固定宽度编码,每个代码点使用4个字节。这不是很有效率,但会使BMP之外的生活更轻松。我有一个.NET
    Utf32String
    类作为我的库的一部分,如果您需要的话。(请注意,它没有经过非常彻底的测试。)
  • :仅使用底部7位的单字节编码。(Unicode代码点0-127。)无重音符号等
  • ANSI:没有固定的ANSI编码,有很多。通常,当人们说“ANSI”时,他们的意思是“我的系统的默认语言环境/代码页”,它是通过获取的,通常是但可以是其他语言环境
还有更多关于和


另一个重要的代码资源是,它包含的信息比你所能处理的信息还要多——可能最有用的一位是。

最好参考的网站是:非常相关:,“ANSI”一词在应用于微软的8位代码页时用词不当。它们基于提交给ANSI标准化的草案,但ANSI本身从未将其标准化。Windows-1252(最常用的代码页称为“ANSI”)与ISO 8859-1(拉丁语-1)相似,不同之处在于Windows-1252的可打印字符范围为0x80..0x9F,其中ISO 8859-1的控制字符范围为0x80..0x9F。Unicode还具有该范围内的控制字符@jp2code:我不会,但你需要区分“通过HTTP从web服务器发回的内容”和“通过电子邮件发送的内容”。发送电子邮件的不是网页内容——大概是它背后的应用程序。UTF-8中的web内容最好;邮件内容可以是UTF-7格式,尽管我怀疑现在可以将其保留在UTF-8格式。对于UTF-16,IMHO,我会说“每个代码单元2字节”,因为BMP之外的代码点将在代理项对中编码为2个代码单元(4字节)。忽略UTF-16LE(在.NET内)之间的差异和BOM的概念一样好。@Andrew:不,没有(通用)编码标记。Windows 1252不能表示Unicode BOM,而且它也没有意义,因为它只是一个字符一个字节的编码。这篇文章写完8年后我读了它。14年后,它仍然是一本好书。那是我半辈子以前的事了。难以置信。另一个类似的有用资源:18年后,仍然是必读