Вопрос

Я могу загружать файлы из своего приложения через FTP с помощью библиотеки Java FTPClient.

(происходит загрузка в хранилище Oracle XML DB.)

Все загружается нормально, если в xml-файле нет фигурных кавычек. В этом случае я получаю ошибку: LPX-00200: не удалось преобразовать кодировку UTF-8 в UCS2

Я могу загрузить то, что я считаю одним и тем же файлом, используя инструмент Windows CMD line FTP. Мне интересно, есть ли какой-нибудь параметр кодирования, который использует инструмент Windows CMD line, который, возможно, мне нужно установить в моем коде Java.

Кто-нибудь знает что-нибудь об этом? Спасибо !!

Это было полезно?

Решение 3

В двоичном коде эта проблема исчезает.

FTPClient.setType(FTPClient.TYPE_BINARY);

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

Другие советы

Я не знаю это приложение, но вы можете попробовать использовать -Dfile.encoding = UTF-8 в командной строке JVM

Не знакомы с репозиториями Oracle XML DB - могут ли они принимать сжатые загрузки? Архивирование или сжатие вашего файла позволит сэкономить ресурсы и нарушит автоматическое определение любого типа файлов ASCII.

Если ваш файл содержит фигурные кавычки, они находятся в диапазоне старших битов в наборах символов 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-анализаторах вы можете анализировать закодированный XML-код iso-8859-1 или windows-1252, если он помечен как таковой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top