Explicación del problema de codificación ilegible, la forma más rápida y efectiva de resolver Tomcat ilegible. [Espero corregirme]

Autocomprensión del problema confuso de codificación

El motivo del código ilegible: la
  URL de la solicitud debe ser codificada por el codificador del navegador ----> enviarse al servidor y luego decodificar el decodificador -> los métodos de codificación y decodificación son inconsistentes, lo que causa el problema confuso.

Pase un parámetro de la página username = 帝峰para solucionar el problema distorsionado

@RequestMapping(path="testEncode")
    public String testEncode(String username) throws Exception{
    
    
	//直接输出结果是username = %E5%B8%9D%E5%B3%B0
	System.out.println("username = " + username);
	
    //查看浏览器请求域,发现username = 帝峰 这两个字被utf-8编码变成了%E5%B8%9D%E5%B3%B0
	//我们可以通过URLDecoder.decode解码(UTF-8编码)来解决中文乱码问题
        //String decodeName= URLDecoder.decode("%E5%B8%9D%E5%B3%B0","UTF-8");
        String decodeName= URLDecoder.decode(username,"UTF-8");
        //解码输出正常 username = 帝峰
        System.out.println("username = " + decodeName);
        return "requestmappingsuccess";
    }

URLDecoder.decode()Obviamente, el tipo de decodificación anterior no satisface nuestras necesidades, porque no sabemos qué tipo de codificación usamos en el proceso de codificación, y es muy problemático escribir de esta manera todo el tiempo.

Entendamos el proceso de ejecución del programa [creo que hay algunos problemas, corríjame]

página jsp -> traducida (usando codificación pageEncoding) en almacenamiento de servlet (la traducción jsp se ejecuta como servlet ) -> mediante javaccompilación (la compilación javac usa codificación utf-8, que ocupa dos bytes, que es Unicode UTF-8) se convierte en un servlet.class archivo binario -> se la entrega al servidor Tomcat (Tomcat utiliza codificación iso8859-1 por defecto, es necesario cambiar a UTF-8 para asegurar que la codificación es consistente) -> se la entrega al Controller等programa y establecer la codificación ontentType="text/html;charset=UTF-8"UTF-8 -> Al cliente -> Luego a la página jsp -> pageEncoding="UTF-8"Renderizar la página al usuario mediante decodificación.

[El resumen anterior es mi propio resumen, siento que hay algunos errores, el siguiente señala que soy
fácil de cambiar, lindo nuevo ~] La forma más fácil de resolver el código confuso es asegurarse de que cada paso del paso de ejecución esté en el mismo formato de codificación. Eso es para asegurar que todos los códigos ambientales sean consistentes.

La forma más sencilla de resolver la salida confusa de la consola del servidor Tomcat:

Captura de pantalla de personajes confusos

Inserte la descripción de la imagen aquí

Solución

  Modifique los logging.propertiesarchivos en el directorio conf bajo el directorio tomcat第47行,将UTF-8改为GBK

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

[Resumen-Dudas]

Modifiqué el original paso a paso para resolver el código confuso. En cuanto a por qué esto se resolvió paso a paso, también quiero saber, espero que los grandes me digan

Supongo que te gusta

Origin blog.csdn.net/qq_40542534/article/details/109082850
Recomendado
Clasificación