gpt4 book ai didi

java - 导出到 JAR 时从套接字中读取编码字符不起作用

转载 作者:行者123 更新时间:2023-11-30 08:34:57 25 4
gpt4 key购买 nike

如果我在 eclipse 中作为 java 应用程序运行没有问题,但如果我将项目导出为可运行的 jar 文件,我会遇到编码问题?

如果它从 eclipse 运行,我可以通过套接字读取来自服务器的字符“ş”。如果它作为可运行的 jar 运行,我无法读取字符“ş”

我该如何解决这个问题?

编辑

public class Start {

public static void main(String[] args) {


byte[] buff = new byte[1024];
Socket socket = null;
InputStream in = null;

try {
socket = new Socket("11.11.11.11");
in = socket.getInputStream();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
in.read(buff);

} catch (IOException e) {
e.printStackTrace();
}

System.out.println(new String(buff));




}

}

最佳答案

new String(buff)

使用当前平台的默认编码创建字符串。这在 Eclipse 中和 Eclipse 之外可能有所不同。

改为使用

new String(buff, StandardCharsets.UTF_8)

指定字节数组应始终被视为 UTF-8(假设您接收的是 UTF-8)

另外不要忘记关闭您的流。

关于java - 导出到 JAR 时从套接字中读取编码字符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com