Java程序员遇上字符乱码8-你理解ANSI编码吗

ANSI编码,其实多少会令人有点困惑。如果你用过中国、韩国、美国等国家本地居民手中PC的windows操作系统中的记事本,那么你一定会在这些系统中都会看到 ANSI 编码。那么ANSI编码是什么编码?这其中也是有历史渊源的。

Java程序员遇上字符乱码8-你理解ANSI编码吗_第1张图片

ANSI,全称是:American National Standard Institite 中文译名: 美国国家标准协会。是一个 定义标准 的组织。

我们知道,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。微软公司在开发windows操作系统时为了方便,将不同地区人民群众的默认标准编码统称为ANSI编码。例如,在简体中文系统下,ANSI 编码代表 GB2312 编码,台湾地区ANSI 编码代表BIG-5,在日文操作系统下,ANSI 编码代表 JIS 编码。

ANSI编码 如何修改?

ANSI编码的初始指定,是我们在安装操作系统时选择的地区地点(locale)环节时就确定的。例如我们中国大陆会选择“上海”。如果我们要修改,有两种方式:

1.  命令行模式:chcp 。

Java程序员遇上字符乱码8-你理解ANSI编码吗_第2张图片

936 : 简体中文,现在是指GBK。如果是繁体中文,code page值为950(表示Big-5编码)。详见:Microsoft Windows' Code Page 936

并且,我们可以看到,窗口可以正确识别并打印:'罗'。

(1) 执行:chcp 437,code page改为437,当前终端的默认编码就为ASCII编码了(‘罗’显示是乱码):

Java程序员遇上字符乱码8-你理解ANSI编码吗_第3张图片

(2) 执行:chcp 936,code page改为936,当前终端的默认编码就为GBK编码了(汉字又能正常显示了)。

当然,在命令行的操作是针对此命令行当前终端范围内的,无法对window全局修改。

2.  全局修改:

要想修改系统默认的“ANSI编码”,我们可以通过修改系统区域Locale来实现(“控制面板” =>“时钟、语言和区域”=>“区域和语言”=>“管理”=>“更改系统区域设置...”)。当然,设置完毕后重启才能生效。

Java程序员遇上字符乱码8-你理解ANSI编码吗_第4张图片

你可能感兴趣的:(Java程序员遇上字符乱码8-你理解ANSI编码吗)