gpt4 book ai didi

java - java xml 对非 ascii 字符的解析不正确

转载 作者:行者123 更新时间:2023-12-01 05:38:28 24 4
gpt4 key购买 nike

我正在使用 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,如上所述。看起来垃圾的字符串是我尝试使用小程序查看的远程网络文件夹,该文件夹实际上名为“不能正常工作”。由于两者不相等(实际文件夹名称和 xml 中的文件夹名称),因此 java xml 解析在尝试启动 applet 时会引发错误。请建议可以采取什么措施来解决这个问题。另外,我没有使用 SAX 解析器,而是使用 XML 解析器,然后创建一个 DOM 对象

最佳答案

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

关于java - java xml 对非 ascii 字符的解析不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com