JSP乱码处理问题!!

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:23:01
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
我用的是GH2312

问题(1)
可是我插入数据字母和数字~打印还可以
插入中文就不行了。。打印出来是乱码。

(2)
我加入了一句这样的话

<% request.setCharacterEn("GB2312"); %>
//这应该是乱码处理吧,,,
我在没加这个代码时运行没出错,
可是
我加这个代码后运行后出错了,,,下面是错误提示;
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 12 in the jsp file: /ly/insert_do.jsp
Generated servlet error:
F:\tomcat\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\ly\insert_005fdo_jsp.java:54: cannot resolve symbol
symbol : method setCharacterEn (java.lang.String)
location: interface javax.servlet.http.HttpServletRequest
request.setCharacterEn("GB2312");
^
1 error

(3)

我数据库用的是MYSQL
他们说MSYQL数据库的默认编码方式是latin1

怎么把l

乱码处理一般不用这个函数。
再说你的函数写错了setCharacterEncoding
最有用的方式是
String key=new String(request.getParameter("key").getBytes("ISO-8859- 1"),"gb2312"); 然后再使用key
当然如果需要处理的页面过多的的话可以考虑使用过滤器,网上看看就知道了,简单
所有以上前提是你的数据库字符合理

说下思路

我们的目的是为了保证数据库和JSP页面的 字符集类型相同

那么可以处理的方式有两种 ,在后台处理查询出来的字符集,或干脆 修改数据库的字符集都可以。

你用mysql的话最简单的解决方式 ,
alter database test character set ……;

省略号部分为你要转换的 字符集类型。
把 test 部分全部变成 你预期的字符集类型

<% request.setCharacterEn("GB2312"); %>
应该是<% request.setCharacterEncoding("GB2312");%>
如果可以的话就给分吧 哈哈

把MySQL再设置一下,让它的默认编码是UTF8