gpt4 book ai didi

java - 从 "UTF-8"转换为 "ISO-8859-1"时,除 0x00-0x7F 之外的字符不显示

转载 作者:行者123 更新时间:2023-12-01 19:23:59 39 4
gpt4 key购买 nike

我需要从浏览器的URL请求中获取一个字符串,然后根据请求的文本创建一个文本图像。我知道Java网络传输的默认编码是“ISO-8859-1”,它可以正常使用“ISO-8859-1”中定义的所有字符。但是,当我请求多字节 Unicode 字符(例如中文或类似 ¤ж)时,我需要通过“ISO-8859-1”中的“UTF-8”对其进行解码。

我的代码如下:

String reslut = new String(requestString.getBytes("ISO-8859-1"), "UTF-8");

一切都很好,但是我发现ISO-8859-1中的一些字符现在没有显示,这些字符是0x80 - 0xFF(在“ISO-8859-1”中定义),即除了0x00-0x7F之外的字符是从“ISO-8859-1”转换为“UTF-8”时未显示

还有其他方法可以解决这个查询吗?

最佳答案

I know the default encoding of the Java net transmission is "ISO-8859-1"

我不确定你的意思,但在网络中事实并非如此。所有内容均以字节为单位。也许您将其与尝试将字节流读取为字符的 InputStreamReader 的默认编码相混淆。为字节流构造 InputStreamReader 时,应使用 the constructor which takes the encoding as 2nd argument 。例如

Reader reader = new InputStreamReader(connection.getInputStream(), "UTF-8");

如果您实际上使用的是 java.net.URLConnection,那么您应该首先从 Content-Type header 中过滤编码。并将其应用为编码。

关于java - 从 "UTF-8"转换为 "ISO-8859-1"时,除 0x00-0x7F 之外的字符不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438993/

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