Ganesh P
Ganesh P

Reputation: 1085

content-type request header

I'm making an ajax call to a rest API and specified the following header an http post request.

Content-Type    application/json; charset=UTF-8

My post body contains some japanese/chinese characters.

Now what my question is, do I need the encode the body of the post request with UTF-8 encoding or the browser takes care of encoding?

Upvotes: 4

Views: 6008

Answers (1)

Kornel
Kornel

Reputation: 100190

When your Content-Type header declares UTF-8 charset, then you must send the content in the UTF-8 encoding.

Although browsers sometimes "guess" or "fix" the encoding, you should never rely on this, as this is a very fragile logic that often fails to work properly.

If your Chinese/Japanese content was in a different encoding (like Shift-JIS), then you will have to convert the text with library like iconv.

Alternatively you could declare that other encoding in the header, but note that you can use only single encoding for all of the response body. Converting everything to UTF-8 is usually the best solution.

Upvotes: 4

Related Questions