这是对Unicode的良好描述吗?

这是对Unicode的良好描述吗?,unicode,Unicode,下面是我对Unicode的描述。请更正和评论 Unicode将字符的表示与存储字符的机制分开。这与ANSI不同,在ANSI中,每个字符由一个字节表示 ANSI代码页将字符映射到字节表示。Unicode将字符映射到代码点。代码点是一个抽象概念。编码方案负责以字节表示Unicode代码点 有许多Unicode编码方案。一些编码方案使用固定数量的字节来表示Unicode代码点。这种方法必须平衡编码可以表示的代码点数量和所需的存储空间量。其他编码方案使用可变字节数来表示Unicode代码点。这种方法使数

下面是我对Unicode的描述。请更正和评论

Unicode将字符的表示与存储字符的机制分开。这与ANSI不同,在ANSI中,每个字符由一个字节表示

ANSI代码页将字符映射到字节表示。Unicode将字符映射到代码点。代码点是一个抽象概念。编码方案负责以字节表示Unicode代码点

有许多Unicode编码方案。一些编码方案使用固定数量的字节来表示Unicode代码点。这种方法必须平衡编码可以表示的代码点数量和所需的存储空间量。其他编码方案使用可变字节数来表示Unicode代码点。这种方法使数据解析复杂化,但它们避免了固定字节长度编码所受的“表示范围”/“存储空间”约束

UTF-8是最常见的Unicode编码。UTF-8的流行是因为它与ASCII兼容。ASCII是ANSI的一个子集,包含英语字母、数字和常用标点符号。UTF-8是一种可变长度编码,能够对所有Unicode码点进行编码


听起来很准确。您可能需要补充一点,UTF-8通常用于存储文本文档,并且通常用于通过有线传输文本,因为它非常紧凑,而UTF-16也非常常见,因为Java和.NET字符串类使用UTF-16是因为它效率很高。

听起来非常准确。您可能需要补充一点,UTF-8通常用于存储文本文档,并且通常用于通过网络传输文本,因为它很紧凑,而UTF-16也非常常见,因为Java和.NET字符串类使用UTF-16是因为它很高效。

还有几个更细微的地方:ASCII兼容性不是唯一的(甚至是主要的)UTF-8-AFAIK流行的原因是,ASCII兼容性的一个非常流行的副作用是,转换为UTF-8的ASCII字符串的字节大小将是相同的。换句话说,当使用很少或没有非ASCII字符编写文本时,您可以获得ASCII的所有好处,而非ASCII字符只需多几个字节。此外,我相信所有官方的Unicode编码都能够表示所有Unicode代码点。

还有几个更好的点:ASCII兼容性不是UTF-8-AFAIK流行的唯一(甚至是主要)原因,ASCII兼容性的一个非常常见的副作用是,转换为UTF-8的ASCII字符串的字节大小将是相同的。换句话说,当使用很少或没有非ASCII字符编写文本时,您可以获得ASCII的所有好处,而非ASCII字符只需多几个字节。另外,我相信所有的官方Unicode编码都能够表示所有的Unicode代码点。

这可能是一个提及Joel的好地方。

这可能是一个提及Joel的好地方。

如果我是你的话,我会去掉对ANSI的引用。在字符集和编码的上下文中,“ANSI”通常指您正在使用的任何(Windows)系统的默认代码页。这通常意味着微软对现有标准的扩展或修改版本,如
windows-1252
,而不是
ISO-8859-1
。讽刺的是,这些扩展并没有得到ANSI的支持。术语“ANSI”的这种用法是由Microsoft发明的,通常可以在诸如记事本之类的Microsoft应用程序中的“另存为”对话框的编码选择部分找到。在那里,您通常会发现一个名为“Unicode”的选项,它实际上意味着UTF-16(小端,没有BOM)


因此,如果你真的想理解Unicode,你应该先扔掉你在Windows软件(或模拟Windows软件的第三方软件)中看到的任何东西。事实上,抛开所有你已经学到的关于Unicode的知识,从头开始。这是一个复杂的主题,与任何复杂的主题一样,你会发现关于它的坏信息要比好信息多得多。

如果我是你,我会摆脱对ANSI的引用。在字符集和编码的上下文中,“ANSI”通常指您正在使用的任何(Windows)系统的默认代码页。这通常意味着微软对现有标准的扩展或修改版本,如
windows-1252
,而不是
ISO-8859-1
。讽刺的是,这些扩展并没有得到ANSI的支持。术语“ANSI”的这种用法是由Microsoft发明的,通常可以在诸如记事本之类的Microsoft应用程序中的“另存为”对话框的编码选择部分找到。在那里,您通常会发现一个名为“Unicode”的选项,它实际上意味着UTF-16(小端,没有BOM)


因此,如果你真的想理解Unicode,你应该先扔掉你在Windows软件(或模拟Windows软件的第三方软件)中看到的任何东西。事实上,抛开所有你已经学到的关于Unicode的知识,从头开始。这是一个复杂的主题,与任何复杂的主题一样,你会发现关于它的坏信息比好信息多得多。

UTF-8只在西半球流行。总是需要多字节编码的语言从使用UTF-16甚至UTF-32中获益更多


干杯,UTF-8只在西半球流行。总是需要多字节编码的语言从使用UTF-16甚至UTF-32中获益更多


干杯,

???unicode如何与编程无关???@Binary-如果unicode与编程无关,那么它到底与什么有关?是的,unicode与编程有关。这个问题不是,虽然我不认为这与编程有关,但我不会投票结束,因为在体育课上提到这个问题会很好