In my RESTful service written in PHP, in order to update a resource, the client sends raw JSON via POST in the request content (not from a form, which means Content-Type: application/json)
How should I handle the request in order to prevent character encoding problems?
Should I convert the data sent by the client to UTF-8 before handling it, or should I just assume it's utf-8?
I'm asking this question since JSON can be encoded in different ways.
Thank you.
I would recommend you write your PHP code to assume all incoming JSON data is encoded as UTF-8, since that's the default in the spec, and certainly the default in most JSON codecs.
It would be a good idea though to make it explicit in your API documentation that UTF-8 is assumed for application/json content. And if a client wants to transmit JSON encoded differently, instruct them to pass a different Content-Type header that specifies the non-default encoding, with a header like this: Content-Type: application/json; charset=UTF-16.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With