[Android]_[初级]_[AndroidStudio编译输出中文乱码]

Posted infoworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Android]_[初级]_[AndroidStudio编译输出中文乱码]相关的知识,希望对你有一定的参考价值。

场景

  1. 在中文版的Windows系统上使用android Studio开发App,如果编译错误,在构建控制台会看到乱码。如何解决这个问题?

编译错误:
在这里插入图片描述

说明

  1. 输出乱码的原因在中文Windows系统里,ASBuild Output使用的就是UTF-8编码字符输出,而Java程序(AS)获取到系统字符集编码和文件编码都是GBK,因此输出也是GBK编码的字符串,而AS构建控制台只支持UTF-8编码的字符,因此解析错误导致乱码.

Hello.java

  1. 可以看看Hello.java的例子.
import java.nio.charset.*;

public class Hello{

	public static void main(String[] args) {
		System.out.println("hello world");
		System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
        System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
	}	
}

运行

$>java Hello
hello world
file.encoding: GBK
defaultCharset: GBK
$>java -Dfile.encoding=UTF-8 Hello
hello world
file.encoding: UTF-8
defaultCharset: UTF-8

方案

  1. 因此需要启动AS的运行VM参数加上-Dfile.encoding=UTF-8. 在AS里增加这个参数的方式是. 菜单 Help->Edit Custom VM Options,增加以下一行后保存。
-Dfile.encoding=UTF-8
  1. 需要设置生效需要重启,按菜单File->Invalidate Caches/Restart->Invalidate and Restart会重新启动AS.

编译输出显示正常:

在这里插入图片描述

参考

  1. jvm-property-dfile-encoding-utf8-or-utf-8

以上是关于[Android]_[初级]_[AndroidStudio编译输出中文乱码]的主要内容,如果未能解决你的问题,请参考以下文章

[Android]_[初级]_[发送广播时序列化报错]

[Android]_[初级]_[发送广播时序列化报错]

[Java]_[初级]_[配置IDEA和Android Studio的JDK]

[Java]_[初级]_[配置IDEA和Android Studio的JDK]

[Android]_[初级]_[AndroidStudio编译输出中文乱码]

[Android]_[初级]_[Your anti-virus program might be impacting your build performance]