在我用 PHP 编写的 RESTful 服务中,为了更新资源,客户端在请求内容中通过 POST 发送原始 JSON(不是来自表单,这意味着 Content-Type:application/json)
我应该如何处理请求以防止出现字符编码问题?
我应该在处理客户端发送的数据之前将其转换为 UTF-8,还是我应该假设它是 utf-8?
我问这个问题是因为 JSON 可以用不同的方式编码。
谢谢。
最佳答案
我建议您编写 PHP 代码以假设所有传入的 JSON 数据都编码为 UTF-8,因为那是 default in the spec ,当然也是大多数 JSON 编解码器中的默认值。
最好在您的 API 文档中明确说明 application/json
内容假定为 UTF-8。如果客户端想要传输不同编码的 JSON,请指示他们传递一个不同的 Content-Type
header ,该 header 指定非默认编码, header 如下所示:Content-Type: application/json; charset=UTF-16
.
关于php - REST、PHP - 处理客户端的 POST 数据字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332863/