考虑:

unicode=utf16是真的吗?

很多人说Unicode是一种标准,而不是一种编码,但实际上大多数编辑器都支持另存为Unicode编码。


当前回答

让我们首先记住,数据是以字节的形式存储的;Unicode是一个字符集,其中字符映射到代码点(唯一整数),我们需要一些东西来将这些代码点数据转换为字节。这就是UTF-8编码的由来——简单!

其他回答

Unicode的开发是有目的的 致力于创建映射的新标准 在绝大多数的字符 今天使用的语言, 和其他角色一起 不是那么重要,但可能是 创建文本所必需的。utf - 8 只是你众多方式中的一种 可以编码的文件,因为有 编码的方法有很多 文件中的字符转换为Unicode。

来源:

http://www.differencebetween.net/technology/difference-between-unicode-and-utf-8/

事情没那么简单。

UTF-16是一种16位可变宽度编码。简单地称某种东西为“Unicode”是有歧义的,因为“Unicode”指的是一整套字符编码标准。Unicode不是编码!

http://en.wikipedia.org/wiki/Unicode#Unicode_Transformation_Format_and_Universal_Character_Set

当然,还有强制性的Joel On Software -每个软件开发人员绝对必须了解Unicode和字符集(没有借口!)的绝对最小值链接。

除了Trufa的注释之外,Unicode还明确不是UTF-16。当他们第一次研究Unicode时,人们推测16位整数可能足以存储任何代码,但实际上并非如此。然而,UTF-16是Unicode的另一种有效编码(除了8位和32位变体),我相信这是微软在nt派生操作系统运行时在内存中使用的编码。

UTF-16和UTF-8都是Unicode的编码。它们都是Unicode;一个并不比另一个更符合统一码。

不要被微软的一个不幸的历史文物所迷惑。

这里有很多误解。Unicode不是一种编码,但Unicode标准主要用于编码。

iso10646是您(可能)关心的国际字符集。它定义了一组命名字符(例如,“拉丁大写字母a”或“希腊小写字母alpha”)和一组代码点(分配给每个字符的数字——例如,这两个字符分别为61十六进制和3B1十六进制;对于Unicode码位,标准符号是U+0061和U+03B1)。

Unicode曾经定义了自己的字符集,或多或少是iso10646的竞争对手。这是一个16位字符集,但不是UTF-16;被称为UCS-2。它包含了一种颇有争议的技术,即尽量减少必要字符的数量(游戏邦注:即汉朝统一—-基本上是将中国,日本和韩国的字符视为相同的字符)。

从那以后,统一码联盟已经默认这行不通,现在主要集中精力研究如何对iso10646字符集进行编码。主要的方法是UTF-8, UTF-16和UCS-4(又名UTF-32)。这些(UTF-8除外)也有LE(小端序)和BE(大端序)变体。

By itself, "Unicode" could refer to almost any of the above (though we can probably eliminate the others that it shows explicitly, such as UTF-8). Unqualified use of "Unicode" probably happens the most often on Windows, where it will almost certainly refer to UTF-16. Early versions of Windows NT adopted Unicode when UCS-2 was current. After UCS-2 was declared obsolete (around Win2k, if memory serves), they switched to UTF-16, which is the most similar to UCS-2 (in fact, it's identical for characters in the "basic multilingual plane", which covers a lot, including all the characters for most Western European languages).