`

“编码 GBK 的不可映射字符”问题的解决

 
阅读更多
这几天做maven,svn和hudson的持续集成,被maven的编译问题整的头大.
    具体情况是这样:
    我所参与的这个项目在平常编译打包时候使用的是maven,当使用maven编译或者打包时,却老是看到后台报错"编码 GBK 的不可映射字符",每次buid的时候都会有这种问题产生.
    刚开始以为是cruiseControl的配置有问题,就找开发要来了maven在命令行下做编译打包的命令:
    mvn package -Dmaven.test.skip=true
    自己跑到命令行上运行了下,一样的报错.
    从开发那边了解到,项目平常打包编译使用的maven2,而且他们平常没遇到这个问题(现在的开发也是半路接手).网上查了下,说是maven2在windows下使用gbk编码,所以会有这个问题.
    从google上查到在pom.xml文件的<project>节点下创建一个一个properties子节点,写入以下内容:
  <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  </properties>
  不过很杯具,我试了下,不行,问题依旧.这回又把文件改了回去.
  后面发现自己解决不了了.就找开发了,既然他们平常编译打包都正常,肯定有办法的.开发刚开始以为我下载的代码有问题,可能没从svn下载完,我更新了一下,这次所有文件和文件夹都是绿色图标了.这回他编译了下,也失败了.
  从他那边拿过来他本地的源码(先前已提交到了svn服务器上了),拿到我这边来,执行
      mvn package -Dmaven.test.skip=true
    结果能正常编译,于是两个人一起拿beyond compare比较他给的项目的文件和我从svn上下的项目文件,比较了半天,很痛苦地发现,原来两边的文件是一样的,除了从svn上下载的项目文件没有包含target目录外....
    那问题就处在target了,打开他给过来的项目文件夹里面的target目录,发现里面已经有了.class文件,于是把target目录删除,在用maven编译,这回,两边都会报错了.都是那个"编码 GBK 的不可映射字符"问题.
    终于找到解决办法,那就是在pom.xml文件的如下内容中,添加encoding节点:
   
   <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>2.0.2</version>
   <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <!--encoding,就是这个才能解决问题-->
        <encoding>UTF-8</encoding>
    </configuration>
   </plugin>



添加<encoding>UTF-8</encoding>.然后再去编译,先前的报错问题没了.
分享到:
评论

相关推荐

    IDEA编码GBK不可映射字符解决方法

    解决idea编译代码后报“编码GBk不可映射错误”解决办法

    cxf3.2.0编码GBK的不可映射字符问题

    cxf3.2.0出现编码GBK的不可映射字符问题,这个提供解决方法及直接替换的jar包。

    cxf2.7.18编码GBK的不可映射字符问题

    解决cxf2.7.18出现编码GBK的不可映射字符问题,从服务端或者客户端层面上根本解决。

    ant打包时编码 GBK 的不可映射字符.txt

    ant打包时编码 GBK 的不可映射字符 原因:这个主要是因为我们在写代码的时候加入了一些中文注释,而导致编译时候出现的问题。 解决方式:要处理这个问题,仅仅只需要在 build.xml文件中的调用javac的所有地方加入...

    cxf创建客户端出现GBK编码问题解决的jar

    cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar

    Java乱码问题

    问题描述:文件名.java:1: 错误: 编码GBK的不可映射字符

    cxf创建客户端出现GBK编码问题jar

    最新cxfjar包,开发过程中遇到字符编码gbk不可映射问题

    cxf创建出现GBK编码问题解决的jar

    cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar

    CXF3.1.11客户端jar包.rar

    搭建Webservice框架必备的jar包,方便快速搭建,ClientProxyFactoryBean JaxWsDynamicClientFactory 等工具类

    Java常见错误分析文档

    Java常见错误分析Java常见错误分析Java常见错误分析

    rsa-java实例

    /以下p,q,e,m可由 本程序的 参数 p0生成,可任意改变 #define VL 8 // p, q 仅在加密程序中用 DWORD p[VL/2] = {0Xb2ab9d39, 0X8e53d98d, 0X77dd8ec1,0X995283d6}; DWORD q[VL/2] = {0Xc7e37a29, 0X7fb7c168, 0Xea61...

    01------helloServlet.rar

    HelloServlet.java:2: 错误: 编码GBK的不可映射字符 解决:Desktop&gt;javac -encoding UTF-8 HelloServlet.java 原因:使用CMD运行java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式...

    Java编程语言的基础知识作了一个较为全面的汇总-供大家学习研究参考

    错误: 编码GBK的不可映射字符 重要说明:关于数据类型的默认值问题 数据类型划分——浮点形 传统bug问题 数据类型划分——字符型 数据类型划分——布尔型 数据类型划分——字符串型 9、运算符 自增、自减操作 三目...

    ubuntu下使用sublime text时如何完美输入中文

    最近根据使用发现,在ubuntu下,安装sublime Text 3 后,无法使用中文输入的问题。 系统为:ubuntu 64位,安装搜狗输入法linux版 解决方法: 1.下载共享库 点击下载 libsublime-imfix.so 2.下载好库后,进入目录...

    AndroidStudio代码达到指定字符长度时自动换行实例

    补充知识:Android Studio Error—Gradle: 错误:编码 GBK 的不可映射字符的 产生原因分析:项目太旧导致的 解决方案:对应项目级别build.gradle最下方添加 tasks.withType(JavaCompile) { options.encoding = UTF-...

    何冬州制用的五笔单字输入法

    C3: 实现更方便的符号输入方案, 将字符映射表适时调用, 利用输入法相应的编码或自定编码, 在多行多列的二维表及标签卡间切换可选码. C4: 可以如excel或其它支持 列处理的文本软件一样, 更加方便的修改码表. 码表分成...

    特好用的五笔输入法-供参考

    C3: 实现更方便的符号输入方案, 将字符映射表适时调用, 利用输入法相应的编码或自定编码, 在多行多列的二维表及标签卡间切换可选码. C4: 可以如excel或其它支持 列处理的文本软件一样, 更加方便的修改码表. 码表分成...

    txt文档阅读器

    //即返回字符串在GBK、UTF-8和ISO8859-1编码下的byte数组表示 //目的在于把m_mbBufEnd改成指向下一行 } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e....

    MySQL 6 绿色精简BAT版 2.24 MB

    为了方便开发,把启动后的默认编码方式设置成为了GBK.可以配合MySQL-Front或者开源软件HeidiSQL来管理数据库. 而配合免费的MySQL管理工具 导航猫免费版(Navicat Lite),可获得不低于SQL Server的易用度, 例如可视化...

Global site tag (gtag.js) - Google Analytics