`

【转】正确设置-Dfile.encoding参数

阅读更多

 

问题:
            项目在本机开发编译打包后发布到法国的服务器,代码中的中文全部乱码,就算是最简单的代码System.out.println("中文"),打印出来的也是乱码。

代码在本地的服务器测试都正常。

法国服务器的环境:window 2003 中文版。

解决:

在网友imasmallbird的指引下,发现是2个服务器的file.encoding的不同,本地服务器是GBK,而法国服务器是Cp1252,所以会产生乱码。

把法国服务器的区域设置改成中国后,file.encoding就变成GBK,这样可以解决这个问题,但因为很多原因不能直接改区域设置,比如改了区域设置后时间就不是法国时间。

目前解决办法如下:
1. 本地编译打包不用变,本地编译采用的是GBK编译的(默认采用系统字符集编译)

2. 在法国服务器的tomcat上加上JAVA的启动参数 -Dfile.encoding=GBK

重启tomcat,一切正常了。

解决了该问题后,顺便找了些JAVA的中文乱码的资料看了下,简单的总结下:

从Java 源代码到得到正确的结果,要经过 “Java 源代码-> Java 字节码-> 虚拟机->操作系统->显示设备”的过程。在上述过程中的每一步骤,我们都必须正确地处理中文的编码,才能够使最终显示正确的结果。

"Java 源代码-> Java 字节码":该阶段就是调用javac 进行编译的阶段,javac默认采用系统字符集,比如我们本地机器急就是GBK,如果想用其他的编码,比如UTF-8,可以加上 -encoding UTF-8

"Java 字节码-> 虚拟机->操作系统" :该阶段首先需要JRE或者JDK支持多语言(下载JRE的时候会让你选择英文版还是多语言版),然后就是虚拟机启动的时候使用什么字符集,默认也是采用 当前系统的字符集,如需要修改字符集,加上JAVA的启动参数,-Dfile.encoding=GBK

"操作系统->显示设备":该阶段主要就是需要操作系统支持显示中文就可以,就是安装了中文字体。

看到这里后重新看我们的乱码问题,我们在本地编译(Java 源代码-> Java 字节码 阶段)默认采用了GBK字符集,而"Java 字节码-> 虚拟机->操作系统" 阶段是在法国服务器上进行,也是采用了默认的字符集,但这里的默认字符集确实Cp1252,因字符集不一致,所以就会乱码。





System.getProperty("file.encoding")   得到当前系统字符集
content.getBytes(System.getProperty("file.encoding")),"GBK") 通过当前字符集转码

 

来源:http://hi.baidu.com/sxhyll/blog/item/3f234ab1b1514e5f0823022e.html

分享到:
评论

相关推荐

    olap4j-0.9.7.309-JS-3.jar包.rar

    下载之后再maven的bin目录下使用mvn命令:mvn install:install-file -Dfile=F:\apache-maven-3.5.3\mylib\olap4j-0.9.7.309-JS-3.jar -DgroupId=org.olap4j -DartifactId=olap4j-0.9.7.309-JS-3 -Dversion=0.9.7.309...

    tabula-jar-1.2.1.zip

    PDF表格转EXCEL表格使用说明: 1 解压压缩包后运行exe程序 2 需要Java环境支持,如果没有安装Java会自动打开网页,下载Java安装 3 安装完成后再次运行exe,会弹出命令终端窗口,然后会自动打开浏览器...

    spire.xls.free-2.2.0.jar和spire.xls.free-2.2.0.jar

    支持图片转pdf、excel转pdf等功能 导入maven命令 mvn install:install-file -Dfile=文件路径\spire.pdf.free-2.2.2.jar -DgroupId=e-iceblue -DartifactId=spire.pdf.free -Dversion=2.2.2 -Dpackaging=jar mvn ...

    olap4j-0.9.7.309-JS-3.zip

    maven不支持的下载的jar,下载后本地执行mvn install:install-file -Dfile=D:\softwares\常用工具软件\自定义报表工具\olap4j-0.9.7.309-JS-3\mylib\olap4j-0.9.7.309-JS-3.jar -DgroupId=org.olap4j -DartifactId=...

    ojdbc7-12.1.0.1.jar(适用于jdk1.7和1.8)

    在cmd里面执行mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=D:\maven\repository\ojdbc7-12.1.0.1.jar(说明-Dfile=是你这个包的存放路径)Jar的...

    p3c-pmd-1.3.6.jar

    example : java -Dfile.encoding=utf-8 -cp p3c-pmd-1.3.6.jar net.sourceforge.pmd.PMD -d test.har -R rulesets/java/ali-comment.xml

    jasperreports mvn的依赖包olap4j-0.9.7.309-JS-3

    下载之后再maven的bin目录下使用mvn命令:mvn install:install-file -Dfile=F:\apache-maven-3.5.3\mylib\olap4j-0.9.7.309-JS-3.jar -DgroupId=org.olap4j -DartifactId=olap4j-0.9.7.309-JS-3 -Dversion=0.9.7.309...

    jar-jconn3,ojdbc14-10.2.0.2.0,sigar-dist-1.6.3.82,sqljdbc4-4.0.0

    mvn install:install-file -DgroupId=org.hyperic -DartifactId=sigar-dist -Dversion=1.6.3.82 -Dpackaging=jar -Dfile=C:\Users\XXXXX\Desktop\sigar-dist-1.6.3.82.zip mvn install:install-file -DgroupId=org....

    ojdbc6-11.2.0.3.rar

    ojdbc6-11.2.0.3.jar 使用maven 命令: mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar -Dfile=D:\xxxx\ojdbc6-11.2.0.3.jar将包安装在maven库中

    hudi编译失败,不能通过maven自动下载的jar包

    mvn install:install-file -DgroupId=io.confluent -DartifactId=common-config -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-config-5.3.4.jar mvn install:install-file -DgroupId=io.confluent -DartifactId...

    olap4j-0.9.7.309-JS-3

    mvn install:install-file -Dfile=xxx\olap4j-0.9.7.309-JS-3.jar -DgroupId=org.olap4j -DartifactId=olap4j-0.9.7.309-JS-3 -Dversion=0.9.7.309-JS-3 -Dpackaging=jar 命令解释: mvn install:install-file:安装...

    vertica-jdbc-9.2.1-0.jar

    You can download the Vertica drivers here: ...mvn install:install-file -Dfile={/path_to/vertica-jdbc-9.2.1-0.jar} -DgroupId=com.vertica -DartifactId=vertica-jdbc -Dversion=9.2.1-0 -Dpackaging=jar

    libreoffice7.1.8 安装教程和启动kkfielview

    7. nohup java -Dfile.encoding=UTF-8 -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=512m-Dspring.config.location=../config/application.properties -jar $APP_ID > ../log/...

    jodconverter-2.2.2.jar和jodconverter-cli-2.2.2.jar

    linux和windows安装openOffice java通过jodconverter 将excel、doc文件转成pdf或html,比2.2.1版本相比 提供office 2007版本支持 maven是只有2.2.1版本的maven依赖; maven 安装jar包到本地命令 mvn install:install-...

    jarjar....

    新建一个文件夹,将我们原始jar包跟jarjar.jar放到这个文件夹下,同时新建一个文本文件,名字随意,例如 rule.txt,写入下面的内容。 ... 然后打开命令窗口,切换到这个文件夹目录下,输入如下命令。...

    fastdfs-client-java-1.29-SNAPSHOT.jar

    mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=1.29-SNAPSHOT -Dpackaging=jar -Dfile=fastdfs-client-java-1.29-SNAPSHOT.jar pom.xml 文件中写入: <groupId>...

    房产中介项目,采用java、spring做后端,vue做前端,大学期间做的一个小组课设项目,代码手写真实

    房产中介管理系统,可用于自己的课设或者毕设也是足够了,整个项目实现了一个简单得房产中介管理系统,有管理员的后台管理,对房源,客源,员工,订单的增删改查。实现了对于数据统计的展示。用户的前台浏览页面,...

    ojdbc14-10.2.0.4.0.jar

    然后将该jar包解压放入 最后在cmd 中执行命令行mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=C:\oracle/ojdbc14-10.2.0.4.0.jar

    ojdbc6-11.2.0.4.0.jar.zip

    出现oracle jar包导不进的问题时,进入jar包所在目录 cmd管理员权限运行 ...mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4.0 -Dpackaging=jar -Dfile=ojdbc6.jar

    将java程序打包成“可执行”文件示例

    同时,在使用 jar 命令时,必须按照正确的顺序指定清单文件和存档文件的名称。 Java 程序打包成可执行文件示例需要经过编译、打包和转换三个步骤。编译将 Java 程序编译成.class 文件,打包将.class 文件和清单文件...

Global site tag (gtag.js) - Google Analytics