使用 Rest 时出现 Marklogic SVC-BAD 代码点错误 API

Marklogic SVC-BAD Codepoint error when using Rest API

我有一个自定义的休息端点 (POST) 并传递一些键值对,在我的端点中我使用这些键值对并创建一个 xml 文档。这是代码

let $enevelope := <document-enevelope>
                     <metadata>
                     {
                       let $extraProperties := xdmp:get-request-field-names()
                       for $x at $i in $extraProperties
                           let  $val := xdmp:get-request-field($x)
                            return
                               if(repoLoad:isEmpty($val)) then ()
                                 else
                                    element {fn:normalize-space($x)} {$val}}
                       }
                        </metadata>
    </document-enevelope>
let $_ := xdmp:document-insert($docEnevelopeURI, $enevelope,(xdmp:default-permissions()), ())

所有这一切都有效,但是当我发送到我的 POST 请求这个 key/value 对

"Experiment_name":"X13-284-285-A-1516147.0-V1ß iv.po.ip.b.CSF.rat."

我收到以下错误Error: AppRequestTask::run: SVC-BAD: Bad CodepointIterator::_next

我发送的请求甚至没有到达我的自定义休息端点。我确实用 UTF-8 对 key/value 进行了编码。我对出了什么问题感到困惑。但是在查询控制台中我使用相同的 key/value 执行相同的插入操作..

我做错了什么.. ??

我能够通过对 UTF-8 中的参数进行 URLEncoding 来解决我的问题,而在我使用 Marklogic 的其余服务中,我做了 xdmp:url-decode 解决了我的问题...

我的 Marklogic Rest 服务调用 java 所以在调用之前我做了 URLEncoder.encode(str, "UTF-8") 并且在我的 Marklogic 服务端点中我通过调用 xdmp:url-decode

解码参数