REST, PHP -处理客户端的POST数据字符编码


REST, PHP - Handling Client's POST Data Character Encoding

在我用PHP编写的RESTful服务中,为了更新资源,客户端通过POST在请求内容中发送原始JSON(不是来自表单,这意味着content - type: application/JSON)

我应该如何处理请求,以防止字符编码问题?

我应该在处理它之前将客户端发送的数据转换为UTF-8,还是应该假设它是UTF-8 ?

我问这个问题是因为JSON可以用不同的方式编码。

谢谢。

我建议您在编写PHP代码时假设所有传入的JSON数据都编码为UTF-8,因为这是规范中的默认值,当然也是大多数JSON编解码器的默认值。

在API文档中明确假定application/json内容为UTF-8,这将是一个好主意。如果客户端想要传输不同编码的JSON,指示他们传递一个不同的Content-Type标头,指定非默认编码,标头如下:Content-Type: application/json; charset=UTF-16 .