UTF-8是编码还是文档字符集?

时间:2011-07-07 19:51:49

标签: html encoding character-encoding w3c

根据W3C Recommendation说每个aplicattion都需要它的文档字符集(不要与字符编码混淆)。

  

文档字符集包括:

     
      
  • A Repertoire:一组抽象字符,例如拉丁字母“A”,西里尔字母“I”,中文字符“water”等。

  •   
  • 代码位置:一组对曲目中字符的整数引用。

  •   
     

每个文档都是剧目中的一系列字符。

     

字符编码是:       如何表示这些字符

当我在Windows记事本中保存文件时,我猜测这是“文档字符集”:

  • ANSI
  • UNICODE
  • UNICODE BIG ENDIAN
  • UTF-8

简单的3个问题:

我想知道那些是“文档字符集”。如果是的话,

  1. 为什么名单上有UTF-8? UTF-8不应该是编码

    如果我对这些东西没有错:

  2. 是否还有其他文档字符集,Windows不允许您定义?

  3. 如何定义其他文档字符集?

2 个答案:

答案 0 :(得分:2)

根据我的理解:

  • ANSI既是字符集又是该字符集的编码。
  • Unicode是一个字符集;有问题的编码可能是UTF-16。对于相同字符集的替代编码是big-endian UTF-16,这可能是第三个选项所指的。
  • UTF-8是Unicode的编码。

“保存”对话框中该下拉列表的目的实际上是为它选择一个字符集和一个编码,但是对于选项的命名它们有点粗心。

(从技术上讲,编码只是将整数映射到字节序列,因此任何编码都可以与任何小到足以“适合”编码的字符集一起使用。但是,UTF- *编码是使用Unicode设计的心。)

另请参阅Joel on Software's mandatory article on the subject

答案 1 :(得分:1)

UTF-8是一种字符编码,也用于指定HTML和其他文本文档的字符集。它是几种Unicode编码之一(UTF-16是另一种)。

回答你的问题:

  • 它在列表中,因为Microsoft决定在记事本中实现它。
  • 还有很多其他字符集,虽然定义自己的字符集没用,所以不太可能。
  • 您无法使用记事本定义要保存的其他字符集。尝试使用编程器编辑器,例如notepad ++,它将为您提供更多可供使用的字符集。