我的情况与前面的帖子中提到的略有不同,我正在推送我实际上想要以二进制形式存储在MarkLogic中的内容。我在后面的触发器中有代码,它将处理文件的内容。所讨论的内容是以.txt结尾的URI上载的。
使用Java,我有:
BinaryDocumentManager docManager = binaryClient.newBinaryDocumentManager();
BinaryWriteHandle handle = new BytesHandle(content).withFormat(Format.BINARY);
我希望这能绕过UTF-8的要求。我的假设正确吗?
Server Message: XDMP-DOCUTF8SEQ: Invalid UTF-8 escape sequence at line 1 -- document is not UTF-8 encoded
发布于 2018-03-24 06:24:59
Java通过REST,在调用/v1/文件插入文档时会发生一些自动神奇的处理。
如果URI具有已知的文件扩展名,则使用MIME类型映射来确定格式。当您使用具有.txt
文件扩展名的URI时,它将假定您正在加载文本文档。
如果要使用不以.txt
文件扩展名结尾的URI (例如.txt.bin
),那么它应该作为binary()
节点插入。
如果要将具有.txt
文件扩展名的文档插入为binary()
节点,则可能需要以不同的方式插入它。
一般内容类型指南 以下准则适用于为大多数请求指定输入和输出内容类型:
application/xml
或application/json
。安装范围内的MarkLogic服务器MIME类型映射定义MIME类型、URI扩展和文档格式之间的关联。例如,默认映射将MIME类型application/pdf
、'pdf‘URI扩展和二进制文档格式相关联。您可以在Admin的“Mimetype”部分查看、更改和扩展映射,或者使用XQuery函数管理员:mimetypes获取和管理员:mimetypes添加。
https://stackoverflow.com/questions/49453961
复制相似问题