gpt4 book ai didi

java - 如何/无法将乱码/奇怪的文本转换为 utf-8 android (java)?

转载 作者:太空狗 更新时间:2023-10-29 15:53:57 25 4
gpt4 key购买 nike

我从 MySql 获取的网络服务 (php) 返回的文本 è¼å¥ 出现乱码

现在我想在 android 中将它解码为 utf-8,但它不起作用

我试过:

String s = "è¼å¥";// text returned by web service taking it as static for testing

1. 不工作:

String str = new String(s.getBytes(), "utf-8");

2. 不工作:

String normalized = Normalizer.normalize(str, Normalizer.Form.NFD);
// also tried NFC, NFKC, NFKD
// also tested by isNormalized its returning true

3. 不工作:

String str =URLDecoder.decode(s, "utf-8");

以上都给出相同的输出:è¼å¥

所以,请任何人帮助我理解我做错了什么?或者请提供任何替代方案?

任何帮助将不胜感激。谢谢

最佳答案

正如 Stephen C 所解释的那样,我遵循了所有这些步骤,但几乎不需要进行额外的更改:

1. 正如 Stephen C 解释的那样,我的服务器正在以 Latin-1 encoding 发送数据,所以我必须使用 ISO8859_1 字符集

2. 我正在尝试 String str = new String(s.getBytes(), "utf-8");

这不适用于 Latin-1 编码 数据!

为此,我必须将数据的charset(对于我的情况ISO8859_1)设置为getBytes("ISO8859_1")

现在一切正常

String str = new String(s.getBytes("ISO-8859-1"), "utf-8");

注意第二个参数是新字符串的字符集,所以必须是utf-8才能显示原文

关于java - 如何/无法将乱码/奇怪的文本转换为 utf-8 android (java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18285775/

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