Инструмент 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
.