我怎样才能 post 一个复杂的字符到 SharePoint REST API?

How can I post a complex character to SharePoint REST API?

每当我尝试使用 post 复杂字符在 O365 SharePoint 列表中创建列表条目(通过 REST API)时,我都会从服务器收到 JSON 解析错误。下面是简单的 post ,它是导致失败的 β (beta) 字符。 &mdash (—) 和其他 non-simple 个字符也会导致失败。

该代码适用于字母字符。在我看来,这是 SharePoint 方面的一个解析问题,但我想知道我是否遗漏了一些愚蠢的东西(它发生了......)

如果我从标题字段中删除 β 字符,它就可以正常工作。如果我通过 SP Web 界面手动创建列表项,它工作得很好,所以我知道这不是字符无效,只是通过 API.

创建列表项

post 的 headers 是:

var outHeaders = {
    "Content-Type": "application/json;odata=verbose",
    "Accept": "application/json;odata=verbose",
    "Authorization": 'Bearer ' + token,
    "Content-Length": data.length,
    "X-RequestDigest": digest,
    "IF-MATCH" : "*"
}

正在post编辑的数据如下

{
    "__metadata": {
        "type": "SP.Data.EmailArchiveListItem"
    },
    "Title": "TEST fail email β",
    "Sender": "Mark Roden",
    "Recipient": "Mark Roden",
    "Body": "HI Marky"
}

返回的错误是:

400 错误请求

{
    "error": {
        "code": "-1, Microsoft.SharePoint.Client.InvalidClientQueryException",
        "message": {
            "lang": "en-US",
            "value": "Invalid JSON. Unexpected end of input was found in JSON content. Not all object and array scopes were closed."
        }
    }
}

任何input/thoughts赞赏。

尝试使用此代码:β应该可以通过。

Joe Jorden 的回答至少让我走到了这一步 - 如果你 post β 或 - 进入一个 RTF 字段它有效 - post 将它变成一个纯文本字段没有。

2021 年(五年后)我遇到了类似的问题(使用 SharePoint MS Graph REST API),我通过在内容类型中明确指定字符集来解决这个问题:

application/json; charset=utf-8