1

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フォルダーであり、フォルダーの名前は実際には不可右工作です。2つは同等ではないため(実際のフォルダー名とxml内の1つ)、java xml解析は、アプレットを起動しようとしたときにエラーをスローします。これを修正するために何ができるかを提案してください。また、SAXパーサーを使用していません。XMLパーサーを使用してから、DOMオブジェクトを作成しています。

4

1 に答える 1

0

投稿したXMLにゴミ文字が含まれているようです。つまり、これらのUnicode文字は、作成自体の間に壊されたということです。したがって、最初に確認する必要があるのは、パラメータとして文字セットを取り、それらの場所でパラメータとしてUTF-8を使用するAPIの正しいバリアントを使用していることを確認することです。サーバーとクライアントでは、APIを再確認するだけです。 。たとえば、どこかでInputStreamReaderを作成している場合は、InputStreamReader(InputStream in、Charset cs)などを使用していることを確認してください。

于 2011-10-13T01:35:19.040 に答える