繁体   English   中英

非ASCII字符的Java xml解析错误

[英]incorrect java xml parsing for non-ascii characters

我正在使用Java小程序来浏览远程服务器(ftp / cifs)上的文件/文件夹。 问题是,如果远程服务器上的文件夹以非ASCII字符(例如日语或中文)命名,则小程序无法启动。 我已经追溯了问题,这似乎是由于服务器响应中非ascii字符串的不正确解析引起的。 以下是来自服务器的xml响应的摘要。

<?xml version="1.0" encoding="utf-8" ?><a:multistatus xmlns:b="urn:uuid:/" xmlns:c="xml:" xmlns:a="DAV:">
<a:response><a:href>https://xx.xx.xx.xx/folder/äèä¸?能正常工作</a:href><a:propstat><a:status>HTTP/1.1 200 OK</a:status>

如上所述,要求服务器提供的字符集编码为utf-8。 查找垃圾的字符串是我试图使用小程序查看的远程Web文件夹,该文件夹实际上名为不能正常工作。 由于两者不相等(实际的文件夹名称和xml中的一个),因此在尝试启动applet时,java xml解析会引发错误。 请提出可以解决此问题的方法。 另外,我不使用SAX解析器,而是使用XML解析器,然后创建一个DOM对象。

您发布的XML似乎包含垃圾字符。 我的意思是那些unicode字符在创建本身时就被破坏了。 因此,首先要检查的是确保使用正确的API变体,该变体以charset作为参数,并在这些位置使用UTF-8作为参数。在服务器和客户端上,只需仔细检查API 。 例如,如果要在任何地方创建InputStreamReader,请确保使用InputStreamReader(InputStream in,Charset cs)等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM