Las causas de los caracteres chinos confusos
Cómo evitar caracteres confusos
1. Intente utilizar codificación unificada. Si está desarrollando un sistema desde cero, especialmente Java, se recomienda utilizar UTF-8 para codificar desde páginas hasta bases de datos y archivos de configuración. La seguridad es la primera prioridad.
2. El uso de SetCharacterEncodingFilter Esto no es omnipotente, pero será muy problemático sin él. Si está desarrollado en base a Servlet, úsalo si puedes y no te preocupes menos.
Sin embargo, cabe señalar que este filtro solo es efectivo para solicitudes POST, GET se ignora. Si no me cree, puede depurarlo y ver cómo funciona. En cuanto a por qué no filtra las solicitudes GET, parece que no puede hacer nada con respecto a las solicitudes GET.
3. Como se mencionó anteriormente, hay un problema con la solicitud GET. Intente utilizar solicitudes POST, que también es un punto básico del desarrollo web:
4. Evite confundir JavaScript y Ajax. Tenga en cuenta que JavaScript está codificado por ISO8859 de forma predeterminada. Evite JS/AJAX confuso, al igual que GET. No utilice caracteres chinos en las URL. Si no se puede evitar, la transcodificación sólo se puede realizar al generar enlaces.
5. Unifique el entorno de desarrollo lo antes posible y simule las pruebas en el entorno real lo antes posible. Esto puede parecer fuera de tema, pero es lo que hace todo el desarrollo de software, pero vale la pena señalarlo.
Contramedidas contra la basura
1. Entorno de desarrollo confuso: porque Java usa codificación UTF-8 de forma predeterminada, y muchas personas en Internet sugieren que se debería usar UTF-8 en lugar de GBK. la codificación predeterminada al desarrollar Struts. El IDE utiliza Eclipse. Cuando utilice Eclipse por primera vez, el editor de texto predeterminado debe cambiarse a codificación UTF-8.
2. Filtrado de solicitudes POST: este es el más básico, y todos los sistemas Servlet básicamente usarán esto. Sin embargo, sólo funciona para solicitudes POST, lo cual es muy crítico. Utilice SetCharacterEncodingFilter, un conjunto de filtros muy básico para filtrar todas las solicitudes POST de la página a codificación UTF-8.
3. Las páginas JSP están confusas: cambie todas las páginas JSP a charset=UTF-8. Esto puede garantizar que la interacción con el fondo esté codificada en UTF-8 y que las aplicaciones generales básicamente puedan hacer frente al trabajo anterior. .
4. El problema de convertir caracteres chinos en archivos de recursos a caracteres UTF 8: internacionalización. Cuando se utilizan archivos de recursos, es necesario transcodificar los caracteres chinos porque el programa no puede reconocerlos en el archivo de propiedades.
5. La solicitud de obtención es confusa: si utiliza el método GET para enviar una solicitud y agregar parámetros en este proyecto, la codificación será confusa, porque la codificación de solicitud predeterminada de Tomcat es UTF, que debe ser confusa. en el archivo de configuración de Tomcat server.xml Agregue un parámetro uri encoding = "America-8-8" para que los parámetros adjuntos en la solicitud se codifiquen como -8.