0

我有一个编码的 RSS 提要,它会导致我在 Android 中的解析器iso-8859-1出现很多问题。有时它会显示为格式错误的数据,因为它无法正确读取字节并且会过早退出。我能够在我的网络服务器上设置一个 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 中对 latin-1 输入流进行 utf-8 编码?

4

1 回答 1

0

PHP 和 Java 在这一点上完全不同,PHP 字符串是字节数组,Java 字符串是真正的字符串,Java 对字节数组有单独的机制。您的 PHP 解决方案仅在 RSS 采用 ISO-8859-1 时才有效,您可能可以通过使用 Windows-1252 来改进它,但它仍然不适用于实际的 UTF-8 RSS 提要。

所以你真正需要改变的是如何在 Android 中解码对字符串的响应。你还没有显示代码。您将阅读 RSS 提要的 Content-Type 标头或仅足以阅读编码属性,或默认解码为 Windows-1252。就像浏览器一样。

于 2013-01-09T11:11:49.247 回答