質問

FTPClient Javaライブラリを使用して、アプリケーションにFTP経由でファイルをアップロードさせることができます。

(たまたまOracle XML DBリポジトリにアップロードしています。)

xmlファイルに中括弧が含まれていない限り、すべてが正常にアップロードされます。その場合、エラーが発生します: LPX-00200:UTF-8エンコーディングからUCS2に変換できませんでした

Windows CMDラインFTPツールを使用して、同じファイルと思われるものをアップロードできます。 Windows CMDラインツールが使用するエンコード設定がJavaコードで設定する必要があるかどうか疑問に思っています。

これについて知っている人はいますか?ありがとう!!

役に立ちましたか?

解決 3

バイナリでは、この問題はなくなります。

FTPClient.setType(FTPClient.TYPE_BINARY);

http://www.sauronsoftware.it/projects/ftp4j/manual .php#3

他のヒント

そのアプリケーションはわかりませんが、JVMコマンドラインで-Dfile.encoding = UTF-8を使用しようとする可能性があります

Oracle XML DBリポジトリに精通していない-圧縮されたアップロードを受け入れることができますか?ファイルを圧縮またはgzip圧縮すると、リソースが節約され、使用中のASCIIファイルタイプの自動検出が妨げられます。

ファイルに中括弧が含まれている場合、それらはiso-8859-1およびwindows-1252文字セットの高位ビットセット範囲にあります。 UTF-8では、これらの文字は通常UTF-8で2バイトを使用します。

UTF-8の代わりにこれらのエンコーディングの1つでxmlファイルを誤ってエンコードした可能性は十分にあります。設定される上位ビットは複数のUTF-8オクテットのシーケンスでのみ許可されるため、変換エラーが発生します。

Windowsの場合は、メモ帳でファイルを開き、UTF-8エンコーディングで[名前を付けて保存...]を使用してドキュメントを再保存し、変更したファイルをアップロードします。Unixでは、iconvなどを使用しますアップロードする前にiso-8859-1からUTF-8に変換するツール。

XMLドキュメントが明示的にエンコードをマークしている場合、正しいエンコード(UTF-8など)でマークされていることを確認してください。多くのxmlパーサーでは、iso-8859-1またはwindows-1252文字セットでエンコードされたXMLを、そのようにマークされている限り解析できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top