2017-08-12 63 views
1

我正在使用Google App Engine从数据库检索数据。当我检索阿拉伯语文本时,它会返回类似于“????¹????????”在Java Servlet中编码Google App Engine

这里的HttpServlet:

public class MyServlet extends HttpServlet { 
@Override 
public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws IOException { 
    PrintWriter writer = response.getWriter(); 

    final String contentType = "text/plain;charset=UTF-8"; 
    final String characterEncoding = "UTF-8"; 

    response.setContentType(contentType); 
    response.setCharacterEncoding(characterEncoding); 

    writer.println(response.getContentType()); 
    writer.println(response.getCharacterEncoding()); 
    writer.println("السلام عليكم:"); 
} 
} 

输出为:

text/plain; charset=iso-8859-1 
ISO-8859-1 
?§???³???§?? ?¹????????: 

的AppEngine-web.xml中:

<?xml version="1.0" encoding="utf-8"?> 

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 

    <application>myApplicationID</application> 

    <use-google-connector-j>true</use-google-connector-j> 

    <version>1</version> 

    <threadsafe>true</threadsafe> 

    <system-properties> 

     <property name="java.util.logging.config.file" value="WEB-INF/logging.properties" /> 

     <property name="file.encoding" value="UTF-8" /> 

     <property name="appengine.file.encoding" value="UTF-8" /> 

     <property name="DEFAULT_ENCODING" value="UTF-8" /> 

    </system-properties> 

    <env-variables> 

     <env-var name="DEFAULT_ENCODING" value="UTF-8" /> 

    </env-variables> 
</appengine-web-app> 

我使用:Android的工作室 - 运行时:JAVA 7 - 环境:标准

这是来自我的浏览器Chrome:Response and Request Headers

回答

0

我找到了解决方案。

的问题是,我得到的作家设置的内容类型

之前,所以代码应该是:

public class MyServlet extends HttpServlet { 
    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws IOException { 
     final String contentType = "text/plain;charset=UTF-8"; 
     final String characterEncoding = "UTF-8"; 

     response.setContentType(contentType); 
     response.setCharacterEncoding(characterEncoding); 

     PrintWriter writer = response.getWriter(); 

     writer.println(response.getContentType()); 
     writer.println(response.getCharacterEncoding()); 
     writer.println("السلام عليكم:"); 
    } 
}