求救!!! JSP乱码问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:19:29
我的数据库是MySQL5.0 ,其中My.ini的default_character_set=gbk.
JSP页面page contentType="text/html; charset=gb2312"
使用一个ChStr.java类
public class ChStr {
public static String toChinese(String strvalue)
{
try{
if(strvalue==null)
return null;
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}catch(Exception e){
return null;
}
}

//处理字符串中的空值
public static final String nullToString(String v, String toV) {
if (v == null || "".equals(v)) {
v = toV;
}
return v;
}
可是输入输出的中文都变为???????
(我使用的是JDBC链接)
我的QQ是331086347,那位大哥可以直接指点小弟啊??

Mysql数据库写入是有这个问题的,因为数据库的默认编码方式是latin1,瑞典的编码,所以中文的要进行修改,如果是对数据库的操作,每次运行时要重新设置编码方式,进入MySQL执行下面的语句:
SET character_set_system= gbk;
SET character_set_client=gbk;
SET character_set_connection=gbk;
SET character_set_database=gbk;
SET character_set_results=gbk;
SET character_set_server=gbk;

SET collation_connection=gbk_bin;
SET collation_database=gbk_bin;
SET collation_server=gbk_bin;
如果只是对jsp页面进行操作的话,那么在页面中添加<%@page contentType="text/html; charset=gbk2312"(或者gbk)%>,儿在所接受信息的页面中添加<%request.getCharacterEncoding("gbk2312") %>(或者将gbk32变为gbk) ,这样就不是乱码了。希望你成功,如果还是不行的话给我留言。

MySQL中,需要把字符类型设置到字段级别,
用工具打开你的表,设置字段和表的编码类型均为gbk.或者使用命令
ALTER TABLE tablename MODIFY COLUMN columnname VARCHAR(50) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL;

是你toChinese()这个方法的问题,昨天帮人解决了一个问题跟你的问题一样,就出在转码上了,strvalue = new String(strvalue.getBytes(