2017-08-12 3 views
1

J'utilise Google App Engine pour extraire des données de la base de données. quand je récupère des textes arabes, ça renvoie quelque chose comme ça "? § ??? ¹ ????????"Encodage dans Java Servlet Google App Engine

ici est 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("السلام عليكم:"); 
} 
} 

la sortie est:

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> 

J'utilise: Android Studio - Durée: JAVA 7 - Environnement: Standard

ceci est de Mon navigateur Chrome: Response and Request Headers

Répondre

0

J'ai trouvé la solution.

le problème est que je reçois l'écrivain avant de type de contenu

de sorte que le code doit être:

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("السلام عليكم:"); 
    } 
}