我正在使用来自kat.cr的RSS提要作为个人项目。我试图使用罗马框架阅读feed,并遇到了一个重大问题。特定的XML数据出现乱码
我尝试使用罗马(以及其他更基本的阅读Feed的方式)的所有其他Feed完美无瑕,但下面的Feed保留了抛出字符编码相关的例外情况。
https://kat.cr/usearch/Arrow%20S04E21/?field=seeders&sorder=desc&rss=1
然后我创建了下面的方法,看看有什么接收的数据看起来像:乱码数据
public static void saveXML(String url) throws IOException {
Client client = ClientBuilder.newClient();
Response r = client.target(url).request(MediaType.TEXT_PLAIN_TYPE).get();
PrintWriter out = new PrintWriter("XML.txt");
String sXML = r.readEntity(String.class);
out.print(sXML);
out.close();
}
的上述饲料的结果,而所有其他饲料显示完美。 为什么即使字符集被强制为UTF-8,它在任何浏览器中都能很好地显示出来?
我已经看过Hexplorer中的'XML.txt'文件,并注意到整个文件中的UTF-8编码字节序列。
我彻底失去了,任何帮助将非常感激。
就是这样。非常感谢您的帮助。如果你不介意我问,你是怎么确定它是用gzip压缩的?你是否使用你在答案中提供的字节序列来识别它? –
@fakeskuH嗯,我去了我的浏览器的网址,它工作的很好,所以这让我觉得它是在你的代码(或罗马图书馆),它没有正确处理它的东西。看看那个网站的HTTP头文件,我看到它有头文件'“content-encoding:gzip”'。我只是在测试请求/响应周围扔了一个'GZIPInputStream',它工作正常! –
我知道我错过了什么。再次感谢! –