我有一个非常简单的代码:
{{1}}
它在Java7中运行良好
但抛出UnsupportedCharsetException:java8中的GBK,完全堆栈如下:
{{1}}
我在中文使用windows7 我的java8是:
我该如何解决这个问题?
答案 0 :(得分:2)
尝试将“sun.jnu.encoding”属性更改为其他内容,例如:
-Dsun.jnu.encoding=UTF-8
或检查您的JVM是否包含GBK支持所需的“lib / charsets.jar”(http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html)
答案 1 :(得分:1)
似乎JRE安装程序只安装"扩展"如果语言环境需要字符集:https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html
适用于所有平台(Solaris,Linux和Microsoft Windows)的Oracle Java SE Development Kit 7(Java SE 7)和适用于Solaris和Linux的Java SE Runtime Environment 7(JRE 7)支持所有编码这一页。 Oracle的JRE 7 for Microsoft Windows可以作为完整的国际版本或欧洲语言版本安装。 默认情况下,如果JRE 7安装程序识别出主机操作系统仅支持欧洲语言,则会安装欧洲语言版本。如果安装程序识别出需要任何其他语言,或者用户请求支持在定制安装中使用非欧洲语言,安装完整的国际版本。欧洲语言版本仅支持以下基本编码集表中显示的编码。国际版本(包括lib / charsets.jar文件)支持此页面上显示的所有编码。
这也适用于Java 8.我读到这意味着JDK支持所有字符集(包括lib/charsets.jar
)。如果安装程序由具有欧洲语言环境的用户运行,则JRE会尝试安装最小环境并且不会安装扩展字符集(如GBK)。
<强>解决方案:强> 尝试安装JDK或将用户的区域和语言设置为中文(简体),然后重新安装JRE。