La relación entre pageEncoding y charset en contentType y explicación detallada de caracteres ilegibles

1. Entorno operativo: Tomcat8.0

En segundo lugar, la diferencia entre charset y pageEncoding en el archivo jsp:

1. El conjunto de caracteres de contentType se refiere a la codificación del contenido cuando el servidor lo envía al cliente
将charset为UTF-8,那么在浏览器当前网页右键-->编码,可以看到浏览器选择的编码也是UTF-8,如果charset设置为GBK,浏览器编码则会选择为GBK。
2.pageEncoding se refiere al modo de salida de la página jsp
设置pageEncoding设置为GBK,无论这个jsp文件实际是什么编码方式,都会以GBK的格式输出;pageEncoding还有一个功能就是告诉IDE这个文件是
什么编码格式,以便于IDE自动修改文件编码;这里用Eclipse测试(其他IDE未尝试):
windows环境下选中jsp文件 右键-->属性 可以看到下图:

Escriba la descripción de la imagen aquí

如果Default选项为选中状态,当改变pageEncoding时,Eclipse会自动改变jsp文件的编码格式。

3. Razones y soluciones para los caracteres ilegibles de la página jsp

1. La configuración incorrecta de pageEncoding provoca caracteres ilegibles
关于pageEncoding的取值分为下面三种情况(charset的取值原则与此一致):
  1. Especifique el valor de pageEncoding, pageEncoding es el valor especificado;
  2. Solo el valor de charset, pageEncoding piensa que es el mismo que el valor de charset;
  3. Si no hay codificación de página ni conjunto de caracteres, el sistema tomará el valor predeterminado "ISO-8859-1"

当jsp页面pageEncoding指定的编码和jsp页面的实际编码不一致时,如上图文件编码选择了Other的GB2312,如果此时pageEncoding指定的编码
不是GB2312就会出现乱码。
2. La codificación especificada por charset no contiene todo el texto en la página jsp
当charset的编码中不含有当前jsp页面中的某些字符时,会出现乱码情况;如:jsp页面中含有中文字符,charset为“ISO-8859-1”(可以保存,
发布),pageEncoding为GBK(其他任何Tomcat支持的含有中文字符的编码都行,UTF-8 , gb2312等;ANSI为windows下的编码格式,tomcat
不支持,无法解析)时,访问该页面会出现乱码,这是由于“ISO-8859-1”编码不含有中文字符,无法正确解析导致。

另外,如果pageEncoding指定的编码不含有jsp页面中的所有字符,Eclipse是不让保存的,如:pageEncoding=ISO-8859-1,jsp页面含有中文,
当保存时Eclipse会弹出下面的对话框:

Escriba la descripción de la imagen aquí

3. Procesamiento de caracteres ilegibles
综上所述:为了保证jsp不会乱码,在Eclipse下我们可以这么做:
  1. Seleccione la opción predeterminada Predeterminado para el formato de codificación jsp, consulte la Figura 1;
  2. No establezca la codificación de charset;
  3. se debe configurar pageEncoding (de hecho, dentro del alcance del reconocimiento de tomcat, no importa cuál sea, siempre que cumpla con las especificaciones de la empresa);

posdata

contentType="text/html; charset=UTF-8"对应于该jsp界面相应java文件的这里,如下图:

Escriba la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/niuzhucedenglu/article/details/59719105
Recomendado
Clasificación