tomcat-5.0.28 Problema confuso en chino
1. El origen del problema confuso chino de Java
El kernel y los archivos de clase de Java se basan en Unicode, lo que hace que los programas Java sean muy multiplataforma, pero también trae aquí el problema. con algunos caracteres chinos confusos. Hay dos razones principales: caracteres confusos causados por la compilación de archivos Java y JSP, y caracteres confusos causados por programas Java que interactúan con otros medios.
En primer lugar, es probable que los archivos fuente de Java (incluido JSP) contengan chino, y los archivos fuente de Java y JSP se guardan en función de flujos de bytes. Si está en el proceso de compilar Java y JSP en archivos de clase, utilizar Si la codificación no es coherente con la codificación del archivo fuente, aparecerán caracteres confusos. En base a este tipo de código confuso, se recomienda que intente no escribir chino en archivos Java (los comentarios no participan en la compilación y no importa si escribe chino o no, intente hacerlo). compilar manualmente con el parámetro -ecoding GBK o -ecoding gb2312 para JSP, en el encabezado Usando <@ page contentType="text/html; charset=GBK"> o <@ page contentType="text/html; charset=gb2312"; > en el archivo básicamente puede resolver este tipo de problema de basura.
Este artículo se centrará en el segundo tipo de basura, que es la basura generada cuando los programas Java interactúan con otros medios de almacenamiento. Muchos medios de almacenamiento (como bases de datos, archivos, secuencias, etc.) se basan en secuencias de bytes y los programas Java convierten entre caracteres y bytes cuando interactúan con estos medios. Por ejemplo, los datos enviados desde un formulario de envío de página se convierten en un formato Java. programa mostrado como caracteres confusos.
Si la codificación utilizada en el proceso de conversión anterior no coincide con la codificación original de los bytes, es probable que aparezcan caracteres confusos.
2. Solución
Para el popular Tomcat, existen dos soluciones:
1) Cambiar D:\Tomcat\conf\server.xml, especificar el formato de codificación del navegador como "chino simplificado":
El método consiste en buscar server.xml en el navegador. El método consiste en encontrar
lt;Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="" false" forwardPort= "8443 " AcceptCount="100"
ConnectionTimeout="20000" enableUploadTimeout="true" URIEncoding='GBK' /gt;
Las etiquetas en negrita las agregué yo. p>
Puede verificar si su cambio se realizó correctamente mediante el siguiente método: Antes de realizar el cambio, haga clic en el menú "Ver | Codificación" en Internet Explorer en la página donde aparece el código confuso. Encontrará que "Europa occidental". (ISO)". Después de realizar el cambio, haga clic en el menú "Ver | Codificación" y encontrará que el estado seleccionado es "Chino simplificado (GB2312)".
b) Más programas Java, mi programa es así:
public class ThreeParams extends HttpServlet {
public void doGet(Solicitud HttpServletRequest, solicitud HttpServletResults, HttpServletResults solicitud, solicitud HttpServletResults, solicitud HttpServletResults) respuesta HttpServletResponse)
lanza ServletException, IOException {
respuesta.setContentType("text/html; charset=GBK"); p> p>
...
}
}
La negrita es una característica imprescindible que funciona al permitir que el navegador convierta caracteres Unicode en Convertir a caracteres GBK. De esta manera, el contenido de la página y el modo de visualización del navegador se configuran en GBK y no habrá caracteres confusos.
Solución completa para Tomcat en chino
Un proyecto desarrollado en los últimos días, el servidor es tomcat, el sistema operativo es xp, se utiliza la arquitectura MVC y el modelo utiliza En el modo Fachada siempre aparecen caracteres confusos. Pasé muchos días resolviéndolo yo mismo, y mis colegas también me ayudaron a resolverlo. También consulté muchos artículos y opiniones de internautas en Internet y finalmente lo solucioné. Pero una buena memoria no es tan buena como una mala escritura, así que lo escribí específicamente para evitar olvidarlo y para proporcionar un buen método de referencia para quienes enfrentan el mismo problema:
(1) La página JSP está en chino, pero después de leerla, resultó ser un código confuso:
La solución es agregar lt;@ page language="java" contentType="text/html;charset= GBK"gt; donde está codificada la página JSP, porque hay problemas de codificación al convertir JSP en archivos Java. De forma predeterminada, algunos servidores son ISO-8859-1. Si convierte directamente un JSP al chino, definitivamente habrá un problema cuando Jsp se trata como ISO8859-1. Podemos confirmar esto mirando el archivo intermedio Java generado por Jasper
(2) Cuando el objeto Request obtiene la codificación de caracteres chinos enviada por el cliente, aparecerán caracteres confusos:
La solución es: Configurar un filtro, que es el filtro Servelet. El código es el siguiente:
import java.io.IOException
import javax.servlet.Filter
p>
importar javax.servlet.FilterChain
importar javax.servlet.FilterConfig