本博客关于Java项目开发中的乱码解决文章已经有很多了,如 { [又一次成功解决Mysql乱码问题] [再谈乱码问题,如何解决MYSQL数据中文乱码问题] [解决jsp,tomcat,MYSQL下中文乱码问题] },但是,每次总是有很多不同的地方,往往不能通过以前的方式来解决,或者总是有很多的不同,以至于没法解决.
本次要解决的乱码和以前的有点不同,已经排除在以前这几种乱码问题之外的乱码了.它就是:
第一种乱码情况: 在pom框架的项目中,使用POM命令编译或者打包时,在JAVA中直接写的中文,就变成乱码,导致编译失败,这种问题,往往可以通过一种简单的办法来解决,那就是失败后再编译,多进行几次,还是能过的.但是这种方法治标不治本,毕竟不是个好办法,我现在做的项目,有10几个小工程,每次编译要重复10几次才能正常编译通过,花上好几分钟,非常难过.
----------问题详情:运行 mvn install或者编译命令时,出现以下编译错误:
[ERROR] String literal is not properly closed by a double-quote
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[ERROR] Syntax error on tokens, valid member declaration expected instead
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Compiler errors :
error at log.error("transMap涓虹┖,鍒濆鍖栧け璐?);
^^^^^^^^^^
其实就是中文被变成了乱码,把最后那个闭合的双引号给带到乱码里去了.
当时我们的解决办法,1:就是前面提到的,多次反复重复运行命令就可以了,2:在JAVA中直接写中文的地方,在双引号里多加点空格(就是中文字符和又引号之间加空格). 这再种方法都能解决编译时JAVA中的中文变乱码导致POM编译失败的问题,但是,这毕竟不是根本的解决方案.最后,我们找到了终极的解决办法,3:添加Maven运行环境变量,具体方法:[我的电脑]->右键,[属性]->[高级]->[环境变量]==> 添加一个环境变量: 变量名: MAVEN_OPTS ,变量值: -Xms256m -Xmx512m -Dfile.encoding=UTF-8 , (其实只要-Dfile.encoding=UTF-8这个就可以解决乱码了,另外两个可以不用.)
好了,Maven中编译时遇到JAVA直接写的中文乱码问题解决了.
第二种情况:还是JAVA中直接写的中文问题,比如,String str="这里是巴士飞扬技术博客http://www.busfly.cn",然后我们将这个变量的值传给DAO,保存到数据库,结果发现数据库里保存的是乱码,开始时以为是数据库的问题,后来排除了,经过断点发现,在传入的DAO里发现那个变量里的值已经是乱码.
这个问题,我们当时的解决方法: 1: 给变量赋值时,使用String string= new String("这里是中文".getBytes(),"UTF-8"); 来创建带中文的字符串.但是,结果发现,在另一台服务器上,这样做之后全是乱码,而直接写的中文反而是正常的汉字.我们推断,这与服务器的本地环境有关.后来,我们找到了解决办法,2: 给服务器(包括开发员本地开发环境的电脑)设置环境变量(步骤就不说了,参数前面),添加一个环境变量: 变量名: nls_lang ,变量值: AMERICAN_AMERICA.AL32UTF8, 这样,所有的开发环境和发布环境都统一了,中文乱码问题也OK了
本次解决的两个关于JAVA开发中的中文乱码问题和以前的不一样,只适用于上面详情里提到的再种情况,在此记录一下,以便将来再次遇到.
Tags: 乱码 JAVA tomcat服务器 maven |
原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/
本文链接地址:http://www.busfly.net/post/luanma-pom-java.html
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~