• Windows 1252和ISO 8859-1之间的区别(ISO 8859-1就是Latin-1,但1252与Latin1略有不同)


    2.6.5. ANSI字符编码和Windows 1252

    Windows为了支持英语和西欧字符,自己设计了一个编码,对应的在Code Page号是1252,被称为Windows 1252。

    Windows 1252的设计,是参考了ANSI草案(ANSI Draft)。

    而ANSI draft后来发展成为正式的国际标准:ISO 8859-1

    即,Windows 1252是在其成为正式标准ISO 8859-1之前而设计的,因此很容易理解,Windows 1252和ISO 8859-1不是完全等同的。

    下面就来简要说说两者的区别。

    2.6.5.1. Windows 1252和ISO 8859-1之间的区别

    Windows 1252和ISO 8859-1基本等同

    有点不同的是,在128-159(0x80-0x9F)的范围的值,ISO 8859-1编码为控制字符,而微软编码为可打印字符。

    [提示] Windows 1252 vs. ANSI
    1. 类似Windows的Code Page为何被误称为ANSI Code Page,Windows 1252也被误称为ANSI编码,所以此处也可以说是ANSI编码和ISO 8859-1之间的区别。
    2. 而由于ISO 8859-1对应的Latin-1的西欧语言,所以此处也可以称为ANSI编码和ISO Latin-1之间的区别,比如[16]
    3. 微软的此种变体,有各种叫法:ANSI/Windows-1252/Windows Latin-1

      甚至有些微软的程序将其叫做Western European (Windows)。

      更有甚至,由于不清楚,而错称其为ASCII

    [注意] 包含Lattin-1的内容在Notepad中显示乱码

    因此,如果你把包含了128-159范围内的ISO Latin-1编码的文件,用Windows的记事本Notepad去另存为为ANSI的话,则会导致文件内容被错误处理了。

    因为本身的那些128-159的字符,是控制字符,但是却被Notepad识别为可打印的字符了。

    总之,对于Windows 1252,目前的各种叫法,可以理解为:

    ANSI = Windows 1252 = CP 1252 = Windows code page 1252 = Windows Latin-1

    http://www.crifan.com/files/doc/docbook/char_encoding/release/html/char_encoding.html#ansi_and_windows_1252

    http://vlaurie.com/computers2/Articles/characters.htm

    https://zh.wikipedia.org/wiki/ISO/IEC_8859-1

  • 相关阅读:
    019_linuxC++之_函数模板引入
    018_linuxC++之_抽象类的引入
    017_linuxC++之_多态的引入
    《将博客搬至CSDN》
    016_linuxC++之_多重继承
    013_linuxC++之_派生类中权限的调整
    015_linuxC++之_覆写
    014_linuxC++之_不同类型的继承
    012_linuxC++之_类的继承定义
    011_linuxC++之_继承的引入
  • 原文地址:https://www.cnblogs.com/findumars/p/4918348.html
Copyright © 2020-2023  润新知