Tar*_*ngh 4 java android character-encoding
我有乱码文本è¼å¥,这是从MySql获取的Web服务(php)返回的
现在我正在尝试将其解码为android中的utf-8,但它无法正常工作
我试过了:
String s = "è¼å¥";// text returned by web service taking it as static for testing
Run Code Online (Sandbox Code Playgroud)
1.不工作:
String str = new String(s.getBytes(), "utf-8");
Run Code Online (Sandbox Code Playgroud)
2.不工作:
String normalized = Normalizer.normalize(str, Normalizer.Form.NFD);
// also tried NFC, NFKC, NFKD
// also tested by isNormalized its returning true
Run Code Online (Sandbox Code Playgroud)
3.不工作:
String str =URLDecoder.decode(s, "utf-8");
Run Code Online (Sandbox Code Playgroud)
以上都给出了相同的输出: è¼å¥
所以,请任何人帮助我理解我做错了什么?或者请提供任何替代方案?
任何帮助都感激不尽.谢谢
正如斯蒂芬C解释得非常好,我遵循了所有这些步骤,但几乎不需要进行其他更改:
1.斯蒂芬ç解释我的服务器在发送数据Latin-1 encoding,所以我不得不使用ISO8859_1 charset
2.我试图String str = new String(s.getBytes(), "utf-8");
这不适用于Latin-1 encoded数据!
所以为此,我必须设置charset(对于我的情况 ISO8859_1)数据getBytes(" ISO8859_1")
所以现在工作正常
String str = new String(s.getBytes("ISO-8859-1"), "utf-8");
Run Code Online (Sandbox Code Playgroud)
注意第二个参数是针对新字符串的字符集,以便it must be utf-8显示原始文本
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |