自定义 WordPress REST-API 端点返回 unicode 变音符号

问题描述 投票:0回答:1

我使用 WordPress REST-API 上传 csv 文件并将文件内容作为 HTML 表返回。

据我了解文档https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/#return-value回调应该返回响应,并且不回应它。但如果我使用 return,我会得到所有编码的变音符号(/u00fc 而不是 ü)。如果我回应他们,一切都好。

我猜问题是WordPress通过使用wp_json_encode()返回json来包装返回值。当然,我可以回显 HTML 表格,但我需要 json 格式的数据,而 HTML 仅用于开发。

有没有办法防止编码中出现元音变音等? 如果没有,我如何通过js在客户端撤消此操作。我尝试使用decodeURIComponent()(由于提示一次甚至两次,但没有希望),我尝试了unescape()。

javascript wordpress unicode wordpress-rest-api
1个回答
0
投票

直接在REST API端点回调函数中回显返回一般不会有问题。然而,重要的是要确保响应的格式正确并且没有附加内容随响应一起发送。在前面提供的代码片段中,直接回显 JSON 响应是 WordPress REST API 开发中的常见做法。

这就是为什么直接回显响应通常是安全的:

  1. 控制:直接回显响应可以让您完全控制 输出,允许您完全根据需要对其进行格式化。
  2. 效率:直接回显响应比直接回显更有效率 使用 wp_send_json() 或 wp_send_json_success() 等函数,因为它 避免不必要的函数调用。
  3. 灵活性:直接回显允许您处理边缘情况和 如果需要,进一步自定义响应。

但是,当直接回显响应时,确保以下几点至关重要:

  1. 只发送JSON响应,没有额外的输出 之前或之后。
  2. 设置正确的内容类型标头(application/json)以通知 正在返回 JSON 数据的客户端。
  3. 实施适当的错误处理来处理可能出现的任何问题 在响应过程中出现。

只要考虑到这些因素,在大多数情况下直接回应响应不会造成任何重大问题。

在 JavaScript 中,您可以使用 JSON.parse() 来解码 JSON 字符串,其中包括将 Unicode 转义序列(如 \u00d9)解码为其相应的字符。因此,只需在 JSON 字符串上使用 JSON.parse() 就会自动解码值(包括元音变音),并将它们作为普通字符返回。”

© www.soinside.com 2019 - 2024. All rights reserved.