`
顽石OK07
  • 浏览: 84253 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

警告:编码 UTF8 的不可映射字符

阅读更多
 转载: http://qiang106.iteye.com/blog/526326

今天接手一个公司的老项目,刚从CVS上check out后用Ant Build的时候总是报“警告:“编码 UTF8 的不可映射字符”。看了下都是代码中的中文注释,因为我的Eclipse默认采用UTF-8的编码,而这个项目以前是用的GBK,改了一下项目的 properties,注释在代码中能正常显示了,但是Build的时候还是会报这个问题,想想以前刚学Java的时候也有见过这样的错误,手动编译 class的时候也有可有出现这种情况,那就在javac后面加一个编码参数,也就是java encoding XXX x.java就可以了。这是因为编译的时候编码跟文件存储的编码方式不一样造成的,在网上找了些资料,有说在Ant的build.xml中加一 行<compilerarg line="-encoding XXX "/> 到<javac>,XXX就是希望使用的何中编码方式来编译,也就是给Javac添加一个compilerarg编译参数,实际效果就好像 javac -encoding XXX X.java,指定了编码方式,我需要用GBK编码,所以应该写成
Xml代码  收藏代码
  1. < compilerarg   line = "-encoding GBK " />   
<compilerarg line="-encoding GBK "/>
,改好后的<javac>如下:
Xml代码  收藏代码
  1. < javac   srcdir = "${src.home}"   destdir = "${build.class}"   debug = "yes" >   
  2.    < compilerarg      line = "-encoding GBK " />    
  3.    < classpath   refid = "compile.classpath" >   
  4.    </ classpath >   
  5. </ javac >   
<javac srcdir="${src.home}" destdir="${build.class}" debug="yes">
   <compilerarg    line="-encoding GBK "/> 
   <classpath refid="compile.classpath">
   </classpath>
</javac>

再Build就正常了.

You can determine the current character encoding settings by means of the System class:

String currentEncoding = System.getProperty("file.encoding");

Or by means of the Charset class: Charset.defaultCharset()

You could change the default encoding used by your application by means of setting this variable when you lauch the application, for instance:

> java -Dfile.encoding=UTF-8
> java -Dfile.encoding=ASCII
> java -Dfile.encoding=UTF-16
> java -Dfile.encoding=Cp1252
> java -Dfile.encoding=Cp500

分享到:
评论

相关推荐

    Shell脚本把文件从GBK转为UTF-8编码

    而UTF-8是一种可伸缩的Unicode编码,能表示Unicode字符集中所有的字符,包括GBK中的汉字和其他语言的字符。 在某些情况下,我们可能需要将GBK编码的文件转换为UTF-8编码,以便更好地兼容国际化的软件环境或者满足...

    javac -encoding 用法详解

    Test.java:3: 警告:编码 GBK 的不可映射字符 System.out.println("浣犲ソ锛?); ^ Test.java:3: 未结束的字符串字面值 System.out.println("浣犲ソ锛?); ^ Test.java:3: 需要 ';' System.out.println("浣犲ソ锛?)...

    maven 常见错误集合

    Maven编码问题:“编码GBK的不可映射字符” 这个错误通常发生在使用中文操作系统(如Windows XP或Win7)且项目源代码采用UTF-8编码时。由于Maven默认使用GBK编码进行编译,导致无法正确处理某些特殊字符,从而引发...

    javadoc转chm (2).pdf

    如果项目默认编码是UTF-8,但在生成Javadoc时不指定编码,可能会遇到GBK编码的不可映射字符警告,导致Javadoc无法正确生成。解决方法是在生成Javadoc时添加VM options,设置编码为UTF-8,即`-encoding UTF-8 -...

    转码工具转码工具转码工具

    在描述中反复提到“转码工具”,这可能强调了其在日常工作中不可或缺的重要性,尤其是在处理多语言环境或者有历史遗留编码问题的项目时。 例如,ConvertCode.exe可能是一个命令行转码工具,用户可以通过在终端或...

    javadoc转chm.pdf

    但如果你的项目采用UTF-8编码,Javadoc生成时可能会出现警告,因为GBK无法完全映射UTF-8的所有字符,导致乱码。为了解决这个问题,你需要在生成Javadoc时通过VM options指定编码设置,如`-encoding UTF-8 -charset ...

    MySQL中出现乱码问题的终极解决宝典

    如果这些不同的编码之间无法进行无损转换,即它们之间不存在兼容或等价的转换关系,那么乱码就不可避免地发生了。例如,如果shell使用的是UTF-8编码,但是MySQL的character-set-client配置成了GBK,而表结构却配置为...

    oracle 错误合集

    **ORA-17037**:UTF-8 和 UCS-2 之间的转换错误,可能是因为字符集不兼容。 **ORA-17038**:字符串转换错误,可能是因为字符串格式不正确。 **ORA-17039**:字符转换错误,可能是因为字符集编码问题。 **ORA-...

    grub4dos-V0.4.6a-2017-02-04更新

    例如:echo -e \x18 显示 UTF-8 字符 0x18。 echo -e \X2191 显示 unicode 字符 0x2191。 2016-03-15(yaya) 1.增加动画控制热键 F2:播放/停止。 2.增加动画控制位 0x835b,位0:0/1=停止/播放。 3.增加精简...

    dorado4实例参考指南(pdf)

    - **DBCharSet**: 数据库的字符集编码,如`utf8`或`gb2312`。 - **设定连接参数**: 除了基本的连接信息外,还需要配置一些额外的参数来优化连接性能,例如: - `useUnicode`: 设置为`true`以启用Unicode编码。 - ...

    rfc中文文档目录,包含部分翻译

    RFC2279 UTF-8,ISO 10646的一种转换格式 RFC2281 Cisco热备份路由协议(HSRP) RFC2283 BGP-4的多协议扩展 RFC2284 PPP可扩展认证协议 RFC2289 一种一次性密码系统 RFC2296 HTTP 远程变量选择算法--RVSA/1.0 ...

    中文版RFC,共456

    RFC2279 UTF-8,ISO 10646的一种转换格式 RFC2281 Cisco热备份路由协议(HSRP) RFC2283 BGP-4的多协议扩展 RFC2284 PPP可扩展认证协议 RFC2289 一种一次性密码系统 RFC2296 HTTP 远程变量选择算法--RVSA/1.0 RFC2313...

    RFC中文文档-txt

    RFC2279 UTF-8,ISO 10646的一种转换格式 RFC2281 Cisco热备份路由协议(HSRP) RFC2283 BGP-4的多协议扩展 RFC2284 PPP可扩展认证协议 RFC2289 一种一次性密码系统 RFC2296 HTTP 远程变量选择算法--RVSA/1.0 RFC2313...

Global site tag (gtag.js) - Google Analytics