Java Eclipse上导出应用程序后的不同字符
在Eclipse上运行应用程序时,我可以看到正确的拉丁字符,如下所示: 但当我导出到runnable jar文件并执行它时,特殊字符是错误的,如下所示: 我不知道为什么会这样。在Mac上,Eclipse和.jar文件都可以。但在Windows上,这是不好的Java Eclipse上导出应用程序后的不同字符,java,eclipse,javafx,Java,Eclipse,Javafx,在Eclipse上运行应用程序时,我可以看到正确的拉丁字符,如下所示: 但当我导出到runnable jar文件并执行它时,特殊字符是错误的,如下所示: 我不知道为什么会这样。在Mac上,Eclipse和.jar文件都可以。但在Windows上,这是不好的 我从Web服务器获取数据,并在JavaFX列表视图中显示。它是一个转换为UTF-8字节的字符串,显示为一些Windows编码 我猜是你干的: URL url = ... BufferedReader in = new BufferedRe
我从Web服务器获取数据,并在JavaFX列表视图中显示。它是一个转换为UTF-8字节的字符串,显示为一些Windows编码 我猜是你干的:
URL url = ...
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream());
鉴于您应该这样做:
URL url = ...
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream(),
StandardCharsets.UTF_8));
没有字符集的构造函数InputStreamReader将使用当前默认平台编码-错误
对于任何URL,您都可以首先进行一次测试,并尝试预测所交付的编码。该策略有点间接:
- connection.getContentEncoding()/getContentType
- 默认值为ISO-8859-1
- 当ISO-8859-1采用Windows-1252时,as浏览器也会这样做
字符串、char
中,因此可以同时处理所有脚本
二进制数据,
byte[],InputStream,OutputStream
,需要指定字符集/编码,当它必须从文本转换为文本时。它是一个转换为UTF-8字节的字符串,显示为某些Windows编码
我猜是你干的:
URL url = ...
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream());
鉴于您应该这样做:
URL url = ...
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream(),
StandardCharsets.UTF_8));
没有字符集的构造函数InputStreamReader将使用当前默认平台编码-错误
对于任何URL,您都可以首先进行一次测试,并尝试预测所交付的编码。该策略有点间接:
- connection.getContentEncoding()/getContentType
- 默认值为ISO-8859-1
- 当ISO-8859-1采用Windows-1252时,as浏览器也会这样做
字符串、char
中,因此可以同时处理所有脚本
二进制数据,
byte[],InputStream,OutputStream
,需要指定字符集/编码,当它必须从/转换为文本时。非常感谢@Joop Eggen。现在工作完成了,非常感谢@Joop Eggen。现在它的工作完美