El problema del código confuso chino es realmente un problema muy difícil, especialmente después de ser transmitido desde la recepción hasta el mostrador, no sé dónde se encuentra el problema. Ahora compartimos 3 formas de resolver el problema de los chinos confusos en las oficinas delanteras y traseras en Javaweb.
Método 1:
La propia codificación de Tomcat está en el formato de ISO-8859-1 y es incompatible con la codificación china. Por lo tanto, debemos prestar atención al recibir desde el fondo.
Use el mismo formato para recibir (ISO-8859-1), y luego conviértelo con una codificación parsable (UTF-8). De esta manera, podemos obtener un formato compatible con chino. Después de este procesamiento, envíelo a la recepción. Nota: debe configurarlo al enviar al primer plano
resp.setContentType ("Text/html; charset = utf-8"); // Establezca la codificación de caracteres de la página para resolver el problema del texto chino confuso en la interfaz.
Servicio vacío protegido (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioexception {// porque Tomcat viene con el formato de codificación ISO-8859-1
// Uno de los métodos para resolver el código confuso <span style = "White-Space: pre"> </span> String name = req.getParameter ("UserName"); </span> string pwd = req.getParameter ("pwd"); // Use el formato TomCat (ISO-8859-1) se usa para leer. <span style = "White-Space: pre"> </span> String Str = New String (B, "UTF-8"); // Use UTF-8 para conectar String <span style = "White-Space: Pre "> </span> resp.setContentType (" text/html; charset = utf-8 "); // Establezca la codificación de caracteres de la página <span style =" White-space: pre "> </span>
<span style = "White-Space: pre"> </span> PrintWriter pw = resp.getwriter (); > <font size = '5px' color = 'rojo'> nombre de usuario: "+name+" pwd: "+pwd+" </font> </body> </html> "; <span style =" White-Space: PRE "> </span> pw.print (str1); printwriter pw = resp.getwriter (); string str1 =" <html> <body> <font size = '5px' color = 'rojo'> nombre de usuario: "+nombre +"pwd:"+pwd+"</font> </body> </html>";
Método 2:
Debido a que el método es complicado, se usa una configuración simple. Solo una simple oración
req.setcharacterEncoding ("UTF-8"); // debe escribirse en primer lugar porque este método se usa para leer los datos, de lo contrario, los datos serán incorrectos.
De esta manera, no hay necesidad de configurar tan engorrosos como antes
Servicio vacío protegido (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioexception {// porque Tomcat viene con la codificación es ISO-8859-1 formato // resolver dos "método" más engorrosos》 req.setcharacteriCoding ("UTF-8 "); // debe escribirse en primer lugar porque este método se usa para leer los datos, de lo contrario, los datos serán incorrectos. // Establecer esta forma de leer. De esta manera, los chinos se pueden leer, pero se necesita atención. El formulario debe enviarse por <span style = "color:#ff0000;"> método = 'post' </span> resp.setContentType ("text/html; charset = utf-8"); // Establezca el pasado el pasado Codificación que se muestra en el nombre de la cadena de la página = req.getParameter ("Nombre de usuario"); Font size = '5px' color = 'rojo'> nombre de usuario: "+nombre+" pwd: "+pwd+" </font> </body> </html> "; pw.print (str1);
Método 3:
Esto se modifica en función de los dos dharmas. Aunque podemos modificar el formato de codificación para leer, teniendo en cuenta que el usuario definitivamente no lo modificará, necesitamos adoptar un método más general para que el usuario modifique el archivo de configuración. Es decir, el archivo web.xml debe modificar el contenido en Web.xml, es decir, la codificación de caracteres se recibe de XML. Requiere parámetros de configuración en el archivo XML.
El código es el siguiente:
<servlet> <servlet-name> codificando </servlet-name> <ervlet-class> cn.hncu.com.encode.encodeing </servlet-class> <init-param> <amamname> charset </para m -Nombre> <Param-Value> UTF-8 </Param-Value> // El contenido aquí puede ser completado por el usuario (debe estar en formato de codificación) </init-param> </servlet>
Sabemos que el intercambio entre el primer plano y el fondo debe llevarse a cabo a través de la configuración Web.xml.
public void init (servletconfig config) lanza ServletException {charset = config.getInitParameter ("Charset"); // Obtenga los parámetros de inicialización. Por supuesto, Charset debe establecerse como una variable global. La función de servicio posterior debe establecerse req.setcharacterEncoding (charset);
req.setcharacterEncoding (charset); pw = resp.getwriter (); > </html> "; pw.print (str1);
Representaciones resueltas:
Antes de resolver:
Después de la resolución:
Código de recepción:
<Body> <Form Action = "Login" Method = "Post"> // El inicio de sesión está configurado en Web.xml, y el nombre de usuario de los datos se puede leer en segundo plano: <input type = "text" name = "nombre de usuario "/> <br/> contraseña: <input type =" contraseña "name =" pwd "/> <br/> <input type =" subt "value =" Login "/> </form> </body>
Los anteriores son tres formas de resolver el problema de las oficinas de chino y espalda en Javaweb, especialmente el problema de los chinos confusos en los chinos después de ser transmitido desde la recepción al backend.