java 代码中出现菱形乱码?
java代码中出现菱形乱码,一般情况是因为字符集问题,比如java文件是gbk编码的,但是编辑用utf-8编码打开这个java文件就显示这种乱码,解决方法:将编辑器的编码改为和java文件一致的编码即可。
编码
编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。
gb编码标准中,比较常用的是gb2312和gbk两种,gb2312是gbk的一个子集,gb2312编码范围是 0xa1a1 - 0xfefe ,如果纯粹的 gb2312编码,处理起来是十分简单的,但处理gbk字符集时有些小的提示,先说说gbk编码的标准吧:
gbk 采用双字节表示,总体编码范围为 8140-fefe,首字节在 81-fe 之间,尾字节在 40-fe 之间,剔除 xx7f 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
编码分类
1. 汉字区。包括:
a. gb 2312 汉字区。即 gbk/2: b0a1-f7fe。收录 gb 2312 汉字 6763 个,按原顺序排列。
b. gb 13000.1 扩充汉字区。包括:
(1) gbk/3: 8140-a0fe。收录 gb 13000.1 中的 cjk 汉字 6080 个。
(2) gbk/4: aa40-fea0。收录 cjk 汉字和增补的汉字 8160 个。
cjk 汉字在前,按 ucs 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
2. 图形符号区。包括:
a. gb 2312 非汉字符号区。即 gbk/1: a1a1-a9fe。其中除 gb 2312 的符号外,
还有 10 个小写罗马数字和 gb 12345 增补的符号。计符号 717 个。
b. gb 13000.1 扩充非汉字区。即 gbk/5: a840-a9a0。big-5 非汉字符号、结构符和“○”排列在此区。计符号 166 个。
3. 用户自定义区:分为(1)(2)(3)三个小区。
(1) aaa1-affe,码位 564 个。
(2) f8a1-fefe,码位 658 个。
(3) a140-a7a0,码位 672 个。
第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。
这里有几个小技巧:
一、在php中,字符编码是按所发送的编码为准的,因此使用的就是用户输入的编码,不会自动改变,但在asp中,默认的编码是unicode,这样我们很容易就能得到gbk->unicode的编码对照表,这样即使在毫无基础库的情况下也能很容易的实现gbk到utf-8的转换了;
二、由于gbk是高位最低数值是0x40,即是64,因此,有时候组织一些涉及中文的字串时,分割字符最好用64之前的ascii码,这样在任意情况下替换或分割都不会出现乱码,比较常用的是 ,、;、:、 、 、 ,这些字符永远都不会给gb编码添乱
推荐教程:《java教程》
以上就是java 代码中出现菱形乱码?的详细内容。