编码gbk的不可映射字符要怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码gbk的不可映射字符要怎么解决相关的知识,希望对你有一定的参考价值。

输入javac  -encoding utf-8  文件名.java。就可以解决了。

当Java源代码中包含中文字符时,我们在用javac编译时会出现“错误:编码GBK的不可映射字符”。

由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件。

此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。



实践应用

伴随GBK字库的推广使用,中国新华通讯社于2000年1月1日起开始使用GBK编码向各新闻单位播发新闻稿。2000年4月1日起,中国银行业开始推行“储蓄实名制”。

 同时,各种出版物已开始向网络化发展,网上发布新闻、网络出版已是大势所趋,通过网络传播信息的广度和深度对汉字使用提出了更高要求,GBK字库是缓解人名和地名等冷僻字的“当然之选”。

北大方正已为广大用户使用GBK字库做好了充分准备,其出版系统已全面支持GBK字库,如方正书版9.0、方正飞腾从1.0版本、世纪RIP从1.0版本开始就支持GBK字库,用户的补字量将大大降低。方正GBK字库的使用非常便捷。

排版软件方面,Windows上大多数文字处理软件,如MS Office、PageMaker、金山WPS等均已支持GBK字库,方正书版9.0、方正飞腾3.6和方正世纪RIP完全支持GBK字库。

输入法方面,除了Windows上的全拼、王码五笔等主流输入法支持GBK字库外,北大方正还专门为GBK的输入制作了一本GBK内码字典,用户可以用查字典的方法很快找到汉字的GBK编码完成录入。

参考技术A 一般做项目公司都会统一要求文件编码类型,很多为了实现应用国际化和本地化和更高的性能,而选用utf-8而非gbk。
但在开发过程中我们都用的是ide,只要更改了配置就不用操心了,但有时=也会用命令行来编译java文件,这种时候就会出现warning:编码
gbk
的不可映射字符。解决这个问题当然是指定在编译时的编码格式。
方法:
加参数-encoding
utf-8
例如:javac
-encodig
utf-8
helloworld.java
utf-8简介:

unicode
的一种变长字符编码,即
rfc
3629。这种大字符集可以解决多种语言文本显示问题,从而实现应用国际化和本地化。utf-8
编码可以通过屏蔽位和移位操作快速读写,排序更加容易。由于utf-8
是字节顺序无关的,它的字节顺序在所有系统中都是一样的。因此
utf-8
具有更高的性能。

解决java编译错误:编码GBK的不可映射字符

新建java文件,存储时Encoding选择了UTF-8,

由于语句中包含中文,javac编译时报错,提示"编码GBK的不可映射字符":

 

解决办法:

1.使用javac -encoding UTF-8 test.java  编译通过:

2.修改文件encoding编码为 ANSI,编译通过:

以上是关于编码gbk的不可映射字符要怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

maven异常解决:编码GBK的不可映射字符

使用Sublime Text 3写完代码(有中文字符),javac编译时出现警告:编码GBK的不可映射字符,怎么解决?

解决eclipse导出javadoc时的“错误: 编码GBK的不可映射字符”问题(转)

解决java编译错误:编码GBK的不可映射字符

maven错误解决:编码GBK的不可映射字符

解决 java “错误:编码GBK 的不可映射字符”