Java统一UTF-8在windows server控制台乱码(控制台也UTF-8)
Posted HackShendi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java统一UTF-8在windows server控制台乱码(控制台也UTF-8)相关的知识,希望对你有一定的参考价值。
Hi I’m Shendi
最近遇到了乱码问题,研究了一下,得出了结果,这里记录一下
问题
Java源代码UTF-8编码,使用 UTF-8编码编译,运行时指定编码为 UTF-8(统一UTF-8),控制台设置 UTF-8编码,在本地没有任何问题,但是放到服务器上就乱码了(windows server)
然后做了个测试代码如下
import java.nio.charset.Charset;
public class Test
public static void main(String[] args)
System.out.println("中文,chinese");
System.out.println("default code: " + Charset.defaultCharset());
System.out.println("file-encoding: " + System.getProperty("file.encoding"));
System.out.println("default code: " + Charset.defaultCharset());
当前代码在本地以 UTF-8编码运行等都没有任何问题 但是在服务器,以下方式运行
::设置控制台编码为UTF-8
chcp 65001
::以UTF-8编码运行Java
java -Dfile.encoding=UTF-8 Test
结果如下,乱码了
在本地运行没问题,windows server出此问题
因为统一 UTF-8 编码,所以首先想到的就是 Java编码是否不正确,于是验证,将字符串输出到文件
发现编码是 UTF-8
将 chcp 65001 去掉,控制台编码默认为 GBK,问题就解决了,输出的UTF-8编码的字符也不会乱码,虽然控制台编码为 GBK…
以上是关于Java统一UTF-8在windows server控制台乱码(控制台也UTF-8)的主要内容,如果未能解决你的问题,请参考以下文章
Java统一UTF-8在windows server控制台乱码(控制台也UTF-8)