Android:将latin-1转换为UTF8 nativley

时间:2013-01-09 03:07:01

标签: android utf-8

我有一个使用iso-8859-1编码的RSS Feed,这会导致Android中的my parser出现很多问题。有时它会显示为格式错误的数据,因为它无法正确读取字节并会过早退出。我能够在我的网络服务器上设置一个PHP脚本,将脚本转换为UTF-8:

<?php
header('Content-type: text/xml');
$url = urldecode($_GET['url']);
$str = file_get_contents($url);
$utf8 = utf8_encode($str);
echo $utf8;
?>

效果很好。但是,我想让应用程序成为一个独立的实体,因此无论我是否支付账单,它都会运行。此过程也会显着提高速度。

我有没有办法在Android中使用utf-8编码latin-1输入流?

1 个答案:

答案 0 :(得分:0)

PHP和Java完全不同,PHP字符串是字节数组,Java字符串是真正的字符串,Java具有 字节数组的单独机制。只有当RSS在ISO-8859-1中时,您的PHP解决方案才有效,您可以改进它 通过使用Windows-1252但它仍然不适用于实际的UTF-8 RSS源。

所以你真正需要改变的是你如何解码Android中对String的响应。您尚未显示该代码。你会读 RSS提要的Content-Type标头或刚好足以读取编码属性,或默认解码为Windows-1252。就像浏览器一样。