android–EditText为德语变音符号返回增强的ISO-8859-1而不是UTF-8编码?

android–EditText为德语变音符号返回增强的ISO-8859-1而不是UTF-8编码?,第1张

概述我不仅仅是困惑.我有一些EditText,它显然返回ISO-8859-1甚至混合8859-1UTF8字符串.直到现在我的理解是,Android完全是UTF-8,所以这甚至都不会发生.例子:在EditText中输入“wüste”.字符串到十六进制返回此字节代码:57fc737465,我的期望是:57c3bc737465输入“wüsteテス

我不仅仅是困惑.我有一些EditText,它显然返回ISO-8859-1甚至混合8859-1 UTF8字符串.

直到现在我的理解是,Android完全是UTF-8,所以这甚至都不会发生.

例子:
在EditText中输入“wüste”.字符串到十六进制返回此字节代码:
57 fc 73 74 65,我的期望是:57 c3bc 73 74 65

输入“wüsteテスト”返回57 fc 73 74 65 20 30c6 30b9 30c8,现在甚至是扩展的8859-1和UTF-8的混合.

这是预期和想要的行为吗?我可以在某处更改吗?
我在使用JsON向服务器发送数据时意识到了这种行为,并且由于非法的UTF-8字符而导致了这种行为.

问候,
奥利弗

解决方法:

Java(以及AndroID)字符串are not UTF-8, but UTF-16.显示的字节是Unicode代码点.

您需要将字符串转换为UTF-8才能发送它(直接或通过您可能使用的任何JsON库).这可以通过调用getBytes(“UTF8”)来完成
 在你的字符串上获取一个字节数组,其中包含所需编码的字符串.

总结

以上是内存溢出为你收集整理的android – EditText为德语变音符号返回增强的ISO-8859-1而不是UTF-8编码?全部内容,希望文章能够帮你解决android – EditText为德语变音符号返回增强的ISO-8859-1而不是UTF-8编码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1115932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存