博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp/post中文乱码问题
阅读量:4873 次
发布时间:2019-06-11

本文共 1098 字,大约阅读时间需要 3 分钟。

在 iso-8859-1,gb2312, utf-8 以及任意一种编码格式下,英文编码格式都是一样的,每个字符占8位,而中文就麻烦了,在gb2312 下一个中文占 16位,两字节,而在utf-8 下一个中文要占24位,三字节。浏览器在不知道确定编码方式的情况下,就会把这些字符从中间截断,再显示的时候就乱掉了。所以,想要解决乱码问题,就是要告诉浏览器我们到底使用了什么样的编码方式。

为了获得正常显示的中文,需要注意以下几步:

1. 因为服务器要先从本地读取jsp文件,然后经过处理后写入响应,所以我们首先要知道的就是 jsp文件的编码格式。从问题的源头着手解决。

 

在咱们用的windowxp 下,文件默认的编码格式是gb2312。

 

2. 我们要在http 的响应(response)中添加编码信息,使用如下方式:

<%@ page contentType="text/html; charset=gb2312"%>

 

这段要放在 jsp页面的第一行,用来指定响应的类型和编码格式,contentType 为text/html就是html 内容,charset表示编码为 gb2312。这样浏览器就可以从响应中获得编码格式了。

这种<%@ %>的形式叫做jsp指令(directive),现在接触到的是page指令,还有 include和 taglib指令,我们会在后面陆续讲到。

 

3. 还需要在html 中指定编码格式。

 
title

 

meta 部分用来指定当前html 的编码格式,注意这一段要放在head 标签中,并且放到head 标签的最前面,如果不是最前面 ie下可能会出现问题,尤其是在 title 中有中文的情况下。

 

完成了以上三段检验,我们才能保证输出的 jsp页面会正常显示中文。

 

<%@ page contentType="text/html;charset=gb2312"%>          
title

 

POST处理页面:

<%@ page contentType="text/html; charset=gb2312"%> <%     request.setCharacterEncoding("gb2312"); %> <% out.print(request.getParameter("username")); %>

 

 

 

 

转载于:https://www.cnblogs.com/achengmu/p/3149504.html

你可能感兴趣的文章
KMP算法的Next数组详解
查看>>
Brackets (区间DP)
查看>>
Tarjan算法
查看>>
Strategic Game(树形DP)
查看>>
迷宫城堡 (求强连通)
查看>>
Oulipo (KMP 统计出现次数,裸题)
查看>>
图的割点算法 与 图的割边算法
查看>>
KMP算法 最小循环节 最大重复次数
查看>>
Proving Equivalences (强连通,缩点)
查看>>
并查集(模板)
查看>>
Cell Phone Networ (树形dp-最小支配集)
查看>>
Count the string (KMP 中 next数组 的使用)
查看>>
Period (KMP算法 最小循环节 最大重复次数)
查看>>
聊聊Iconfont
查看>>
sgu 103. Traffic Lights
查看>>
poj 3621 Sightseeing Cows
查看>>
hdu 3666 THE MATRIX PROBLEM
查看>>
TopCoder SRM 176 Deranged
查看>>
java 内存模型
查看>>
MetalKit_1
查看>>