UTF-8 fix breaks content-type headers?
By default, AEM queryBuilder, which is how servlets can lookup content, responds with the data encoded in iso-8859 char set instead of the required UTF-8. The solution, which seems improbable, but works, is to create /osgiconfig/config/org.apache.sling.engine.impl.SlingMainServlet.cfg.json file with the following content:
{
"sling.additional.response.headers":[
"X-Content-Type-Options=nosniff",
"Content-Type=text/html;charset=utf-8",
"X-Frame-Options=SAMEORIGIN"
]
}
This fixes the queryBuilder returning data with the wrong charset in the servlet, but has the side effect of making the response header always "text/html". We want our servlets, which are used by the front end to search for and pull page pages as json, to have a content-type of application/json. however, if we change the above file, it will then break AEM.
We tried overriding the content type in the servlet itself, but this gets ignored (or overwritten).
Any ideas how to support both UTF-8 and application/json just for our servlets?