Инструмент Marklogic CoRB не сохраняет файлы XML в формате UTF-8

Если мы попытаемся сохранить XML из Marklogic с помощью xdmp:saveФункция сохраняет файл в формате UTF-8.

Теперь, если мы попытаемся сохранить тот же файл с помощью инструмента Marklogic CoRB, он сохранит этот файл в формате ANSI вместо UTF-8.

Почему?

Код инструмента Marklogic CoRB:

      xquery version "1.0-ml";
declare variable $URI external;
let $doc := fn:doc($URI)
return $doc

1 ответ

В задачах CoRB используется метод методаgetValueAsBytes()вызывает:

      item.asString().getBytes();

Строка Java getBytes()метод:

Кодирует эту строку в последовательность байтов, используя кодировку платформы по умолчанию, сохраняя результат в новый массив байтов.

Итак, похоже, что он должен вместо этого явно запрашивать UTF_8закодированные байты для записи, а не полагаться на кодировку платформы:

      item.asString().getBytes(StandardCharsets.UTF_8);

Я зарегистрировал проблему и исправил ее.

Тем временем, как предложил @David Ennis, вы можете установить кодировку файла по умолчанию на UTF-8, установив системное свойство -Dfile.encoding=UTF-8.

Другие вопросы по тегам