FTP文件时编码UTF-8的问题

时间:2009-10-29 20:27:58

标签: java ftp ftp-client oracle-xml-db-repository

我可以使用FTPClient Java库通过FTP上传我的应用程序。

(我碰巧上传到Oracle XML DB存储库。)

除非xml文件中包含卷曲引号,否则所有内容都会正常上传。在这种情况下,我收到错误: LPX-00200:无法从编码UTF-8转换为UCS2

我可以使用Windows CMD线路FTP工具上传我认为是同一个文件的内容。我想知道是否有一些Windows CMD行工具使用的编码设置,我可能需要在我的Java代码中设置。

任何人都知道这件事吗?谢谢!

4 个答案:

答案 0 :(得分:0)

我不知道该应用程序,但您可以尝试在JVM命令行上使用-Dfile.encoding = UTF-8

答案 1 :(得分:0)

不熟悉Oracle XML DB存储库 - 他们可以接受压缩上传吗?压缩或压缩文件将节省资源并阻碍正在使用的任何ASCII文件类型自动检测。

答案 2 :(得分:0)

在二进制中,这个问题就消失了。

FTPClient.setType(FTPClient.TYPE_BINARY);

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

答案 3 :(得分:0)

如果您的文件包含引号,则它们位于iso-8859-1和windows-1252字符集中的高位设置范围内。在UTF-8中,这些字符通常采用UTF-8中的两个字节。

您很可能不小心使用其中一种编码而不是UTF-8编码了xml文件。这将导致转换错误,因为设置的高位仅允许在多个UTF-8八位字节的序列中。

如果您在Windows中,请在记事本中打开该文件,然后尝试使用“另存为...”以UTF-8编码重新保存文档,并上传更改的文件。在Unix中,使用iconv或类似文件在上传之前将工具从iso-8859-1转换为UTF-8。

如果XML文档明确标记其编码,请确保使用正确的编码标记(例如UTF-8)。在许多xml解析器中,只要标记为iso-8859-1或windows-1252字符集编码的XML,就可以解析它。