页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码解决方法只要在页面开始地方用下面代码指定字符集编码即可
代码如下
<%@ page contentType="text/html; charset=gb" language="java" import="javasql*" errorPage="errjsp" %>
数据库乱码
这种乱码会使你插入数据库的中文变成乱码或者读出显示时也是乱码
解决方法如下
在数据库连接字符串中加入编码字符集
代码如下 String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB
";
并在页面中使用如下代码
代码如下 response
setContentType("text/html;charset=gb
");
request
setCharacterEncoding("gb
");
URL传值乱码
方法一
在bjsp中把pageEncoding="GB"改为pageEncoding="ISO"
虽然这样bjsp页面显示的内容还是乱码但是不是那种“??????”的乱码而是一些特殊字符
然后在浏览器中查看菜单中修改成GB的编码这时乱码就显示中文了
但是这种方法是不可行的
方法二
在bjsp中把
代码如下 String name=request
getParameter("name");
修改为
代码如下 String name=new String(request
getParameter("name")
getBytes("ISO
")
"GB
");
这时再在页面上显示则就是中文了
方法三:
在请求页面的请求参数需要用encodeURI进行转码然后在接收请求的页面需要进行字符集转换 本例中的请求和接收页面的字符集都是UTF:
请求的JSP页面用JavaScript的encodeURI()方法将参数转码
代码如下 function toView(param){
var encodeparam = encodeURI(param) ;
window
location
href="/naias/advAna_form
do?method=showDetail&title="+encodeparam ;
}
在跳转的Action中进行字符集转换 wwwcnnet
代码如下 public ActionForward excute(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response){
String title= request
getParameter("title")
title= new String( title
getBytes("iso
")
"UTF
")
System
out
println(title)
}
为编码为UTF的JSP页面传参对于中文乱码的解决分为两种情况
通过GET方式传参通过
代码如下 new String(request
getParameter("")
getBytes("ISO
")
"UTF
");
的方式转换为需要的编码如UTF等
通过POST方式传参通过声明
代码如下 request
setCharacterEncoding("UTF
");