title: Is there a way to use UTF-8 with app engine?
body: <p>I'm looking for some explanation on how the app engine deals with character encodings. I'm working on a client-server application where the server is on app engine.</p>
  
  <p>This is a new application built from scratch, so we're using UTF-8 everywhere. The client sends some strings to the server through POST, x-www-form-urlencoded. I receive them and echo them back. When the client gets it back, it's ISO-8859-1! I also see this behavior when POSTing to the blobstore, with the parameters sent as UTF-8, multipart/form-data encoded.</p>
  
  <p>For the record, I'm seeing this in Wireshark. So I'm 100% sure I send UTF-8 and receive ISO-8859-1. Also, I'm not seeing mojibake: the ISO-8859-1 encoded strings are perfectly fine. This is also not an issue of misinterpreting the Content-Type. It's not the client. Something along the way is correctly recognizing I'm sending UTF-8 parameters, but is converting them to ISO-8859-1 for some reason.</p>
  
  <p>I'm led to believe ISO-8859-1 is the default character encoding for the GAE servlets. My question is, is there a way to tell GAE not to convert to ISO-8859-1 and instead use UTF-8 everywhere?</p>
  
  <p>Let's say the servlet does something like this:</p>
  
  <pre><code>public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
      resp.setContentType("application/json");
      String name = req.getParameter("name");
      String json = "{\"name\":\"" + name + "\"}";
      resp.getOutputStream().print(json);
  }
  </code></pre>
  
  <p>I tried setting the character encoding of the response and request to "UTF-8", but that didn't change anything.</p>
  
  <p>Thanks in advance,</p>