如何在 Android 中将字符串转换为 UTF-8?
Posted
技术标签:
【中文标题】如何在 Android 中将字符串转换为 UTF-8?【英文标题】:How do I convert a string to UTF-8 in Android? 【发布时间】:2011-03-10 20:32:19 【问题描述】:我正在使用一个名为 Jsoup 的 html 解析器来加载和解析 HTML 文件。问题是我正在抓取的网页是用ISO-8859-1
字符集编码的,而android 使用的是UTF-8
编码(?)。这会导致某些字符显示为问号。
所以现在我想我应该将字符串转换为 UTF-8 格式。
现在我在 Android SDK 中找到了这个名为 CharsetEncoder 的类,我想这对我有帮助。但是我不知道如何在实践中实现它,所以我想知道是否可以通过一个实际的例子来获得帮助。
更新:读取数据的代码 (Jsoup)
url = new URL("http://www.example.com");
Document doc = Jsoup.parse(url, 4000);
【问题讨论】:
能否贴出用于读取html文档的代码? 【参考方案1】:Byte encodings and Strings
public static void main(String[] args)
System.out.println(System.getProperty("file.encoding"));
String original = new String("A" + "\u00ea" + "\u00f1"
+ "\u00fc" + "C");
System.out.println("original = " + original);
System.out.println();
try
byte[] utf8Bytes = original.getBytes("UTF8");
byte[] defaultBytes = original.getBytes();
String roundTrip = new String(utf8Bytes, "UTF8");
System.out.println("roundTrip = " + roundTrip);
System.out.println();
printBytes(utf8Bytes, "utf8Bytes");
System.out.println();
printBytes(defaultBytes, "defaultBytes");
catch (UnsupportedEncodingException e)
e.printStackTrace();
// main
【讨论】:
【参考方案2】:您可以让 Android 为您完成这项工作,方法是将页面读入 byte[],然后使用 jSoup 方法解析 String 对象。
当您使用正确的字符串constructor从服务器读取的数据创建字符串时,不要忘记指定编码。
【讨论】:
以上是关于如何在 Android 中将字符串转换为 UTF-8?的主要内容,如果未能解决你的问题,请参考以下文章