簡體   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