zoukankan      html  css  js  c++  java
  • 关于Windows记事本乱码问题

    Windows早期是ANSI字符集的,单字节的,也就是说一个中文(双字节)文本,在Windows简体中文版显示的是中文,到Windows日文版显示的就不知道是什么东西了。

    现在Windows都支持Unicode,但是如果是Unicode以外的文本时,怎么办?就是允许一个默认语言编码,就是当遇到一个字符串,不是unicode的时候,就用默认语言编码解释。

    在区域和语言选项里可以改这个默认语言,在不同Windows语言版本里是不同的,在简体中文版里,是GBK,在繁体中文版里,是BIG5,在日文版里是Shift-JIS

    而记事本的ANSI编码,就是这种默认编码,所以,一个中文文本,用ANSI编码保存,在中文版里编码是GBK模式保存的时候,到繁体中文版里,用BIG5读取,就全乱套了。

    记事本也不甘心这样,所以它要支持Unicode,但是有一个问题,一段二进制编码,如何确定它是GBK还是BIG5还是UTF-16/UTF-8?记事本的做法是在TXT文件的最前面保存一个标签,

    如果记事本打开一个TXT,发现这个标签,就说明是unicode。标签叫BOM,如果是0xFF 0xFE,是UTF16LE,如果是0xFE 0xFF则UTF16BE,如果是0xEF 0xBB 0xBF,则是UTF-8。

    如果没有这三个东西,那么就是ANSI,使用操作系统的默认语言编码来解释。

    Unicode的好处就是,不论你的TXT放到什么语言版本的Windows上,都能正常显示。而ANSI编码则不能。(UTF-8的好处是在网络环境下,比较节约流量,毕竟网络里英文的数据还是最多的)

  • 相关阅读:
    关于 MySQL 的 General Log 功能
    Oracle VirtualBox & CentOS 7.9 Guest
    CentOS 7 环境下添加拥有 sudo 权限的用户
    CentOS 7 环境下部署 MySQL 5.7 服务
    CentOS 7 环境下部署 Metasploit Framework & Armitage 团队服务
    CentOS 7 环境下部署 Docker 服务
    window10下安装MySQL
    sticky
    Eclipse 打包Mac产品IDE 记录
    Halcon图像处理中的坐标系
  • 原文地址:https://www.cnblogs.com/touhoujerry/p/4794967.html
Copyright © 2011-2022 走看看