gpt4 book ai didi

java - java中通过socket的Unicode文本

转载 作者:行者123 更新时间:2023-12-01 06:56:59 25 4
gpt4 key购买 nike

我在套接字编程中面临一个小问题(我相信)。从非英语语言发送文本时,我收到乱码结果。经过谷歌大量研究后,我做了一些修正。我将 getBytes() 更改为 getBytes("UTF-8") 并尝试发送一些阿拉伯文本。

本地连接套接字时,它工作正常。我看到了我期望的阿拉伯文本。但在线测试时,结果显示奇怪/乱码。

这是我尝试过的文本:

“Mırìbā”(这是“hello”的阿拉伯文字)在我看来是“مرØØا”

请帮我解决这个问题。

最佳答案

这是我手头上的一些 Java 代码,用于在一对字节流上设置流编码,但是您可以对单例执行相同的操作,至少假设您使用的是 TCP 流套接字而不是 UDP 数据报。

    Process
slave_process = Runtime.getRuntime().exec("cmdname -opts cmdargs");

OutputStream
__bytes_into_his_stdin = slave_process.getOutputStream();

OutputStreamWriter
chars_into_his_stdin = new OutputStreamWriter(
__bytes_into_his_stdin,
/* DO NOT OMIT! */ Charset.forName("UTF-8").newEncoder()
);

InputStream
__bytes_from_his_stdout = slave_process.getInputStream();

InputStreamReader
chars_from_his_stdout = new InputStreamReader(
__bytes_from_his_stdout,
/* DO NOT OMIT! */ Charset.forName("UTF-8").newDecoder()
);

InputStream
__bytes_from_his_stderr = slave_process.getErrorStream();

InputStreamReader
chars_from_his_stderr = new InputStreamReader(
__bytes_from_his_stderr,
/* DO NOT OMIT! */ Charset.forName("UTF-8").newDecoder()
);

关于java - java中通过socket的Unicode文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384720/

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