我如何解码一个utf-8字符串在
android?我尝试使用这个命令,但输出相同的输入:
URLDecoder.decode("hello&//à","UTF-8"); new String("hello&//à","UTF-8"); EntityUtils.toString("hello&//à","utf-8");
解决方法
字符串不需要编码.这只是一个Unicode字符序列.
当您想将String转换成一个字节序列时,需要进行编码.您选择的字符集(UTF-8,cp1255等)确定字符>字节映射.请注意,字符不一定被翻译成单个字节.在大多数字符集中,大多数Unicode字符被转换为至少两个字节.
字符串的编码是通过以下方式执行的:
String s1 = "some text"; byte[] bytes = s1.getBytes("UTF-8"); // Charset to encode into
当您有字节序列时,您需要进行解码,并将其转换为字符串.当你需要再次指定该字符串最初被编码的字符集(否则你最终会使用garblеdtеxt).
解码:
String s2 = new String(bytes,"UTF-8"); // Charset with which bytes were encoded
如果你想更好地理解这个,一个伟大的文本是“The Absolute Minimum Every Software Developer Absolutely,Positively Must Know About Unicode and Character Sets (No Excuses!)”
原文地址:https://www.jb51.cc/java/123338.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。