kimondoe
kimondoe

Reputation: 619

How to remove charset=utf-8 in a Content-Type header, generated by grails

I'm trying to send json data as a response body in grails. I've tried setting the Content-Type header to application/json using the following methods:

render (status: httpServletResponse, text: responseToRender as JSON, contentType: "application/json")

Each time the resulting header is as follows:

Content-Type: application/json;charset=utf-8

How do I get rid of the charset=UTF-8 postfix?

Upvotes: 3

Views: 4218

Answers (2)

You can render a JSON String with

response.setContentType("application/json")
response.outputStream << jsonVar

Then your header will be only

Content-Type:application/json

Upvotes: 0

Kloker
Kloker

Reputation: 549

You can not get rid of the charset postfix. You can change it with the charset parameter defined here:

https://docs.grails.org/latest/ref/Controllers/render.html

You can also provide no information by just handing json to render, such as:

response.setContentType("application/json")
render JsonOutput.toJson(responseToRender);

However, this will default to the standard encoding required by HTTP 1.1 which is ISO-8859-1. therefore your result would be application/json;charset=ISO-8859-1

https://www.w3.org/International/articles/http-charset/index.en

So, if you somehow need to use this parameter, you may use .split(";")[0] to access only the first part.

Upvotes: 1

Related Questions