0

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

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

除非 xml 文件中包含花引号,否则一切都可以正常上传。在这种情况下,我收到错误: LPX-00200: could not convert from encoding UTF-8 to UCS2

我可以使用 Windows CMD line FTP 工具上传我认为相同的文件。我想知道是否有一些 Windows CMD 行工具使用的编码设置,也许我需要在我的 Java 代码中设置。

有人知道这件事吗?谢谢!!

4

4 回答 4

0

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

于 2009-10-29T20:37:03.497 回答
0

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

于 2009-10-29T20:49:39.510 回答
0

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

FTPClient.setType(FTPClient.TYPE_BINARY);

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

于 2009-10-30T13:53:34.390 回答
0

如果您的文件包含花引号,则它们在 iso-8859-1 和 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 或 windows-1252 字符集编码的 XML,只要它被标记为这样。

于 2009-10-31T20:25:54.970 回答