代码之家  ›  专栏  ›  技术社区  ›  jlp

代码页和字符编码有什么区别?[复制品]

  •  9
  • jlp  · 技术社区  · 15 年前

    我的ASP.NET应用程序导入csv文件。它们大多保存在要求“字符集”的电子表格或记事本中,例如: ISO-8859-2 , Windows-1210 , DOS-852 Unicode(UTF-8) .

    Wiki说 UTF-8 是字符编码,但 Windows 1210 ISO-859-2 是代码页。这些术语可以互换吗?

    .NET读取以UTF-8格式保存的文件。它发现编码本身了吗?

    4 回复  |  直到 15 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    你可能想看看乔尔·斯波斯基的 article 而这个帖子 here

        2
  •  1
  •   Lasse Espeholt    15 年前

    来自wiki的引用:

    代码页是字符编码的另一个名称。 它由描述特定语言的字符集的值表组成。”

    http://en.wikipedia.org/wiki/Code_page

    还有:

    “Windows代码页是一组字符或代码页( 在其他操作系统中称为字符编码 )在20世纪80年代和90年代的Microsoft Windows系统中使用。”

        3
  •  1
  •   Hans Passant    15 年前

    我认为这在很大程度上是历史性的,但有一个明显的区别。代码页是一个查找表,一个特定的字节映射到一个特定的字符。不同的代码页使用不同的映射。在过去,这些映射实际上没有执行。这要求你也有字体有字形匹配代码页。今天仍然是个问题,顺便说一句,控制台窗口有一个代码页。

    Unicode编码中没有映射。它们只需要将32位压缩成有效的格式。不同的Unicode编码使用不同的方式压缩位。字符始终具有固定值(Unicode语言中的代码点)。

    UTF编码的文本文件应该有一个BOM,允许读卡器自动检测编码。对于使用代码页编码的文本文件,不存在此类约定。从他们那里得到好的文本有点废话。这是一个应该已经死去的恶魔:)

        4
  •  0
  •   Jerome    15 年前

    .NET类(如streamreader)默认为UTF-8编码;不,它不会被神奇地检测到。