我能够通过使用FTPClient Java库FTP有我的应用程序上传文件。

(I碰巧上传到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

其他提示

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

不熟悉Oracle XML DB库,他们可以接受压缩上传?荏苒或gzip压缩文件会节省资源,在使用任何落空ASCII文件类型自动检测。

如果您的文件包含弯引号,他们是在ISO 8859和Windows 1252字符集的高位设定范围。在UTF-8,这些字符通常采取两个字节在UTF-8。

这很可能是你不小心编码XML文件中的这些编码,而不是UTF-8的一个。这将导致转换错误,因为所设置的高阶位在多个UTF-8个八位组的序列仅被允许。

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

如果XML文档显式地将其编码,以确保它的标有正确的编码(例如UTF-8)。在许多XML解析器,可以只要解析ISO-8859-1或窗口1252字符集编码的XML作为它被标记为这样。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top