站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题求MySql和Jsp的中文问题解答

求MySql和Jsp的中文问题解答

摘要: 求MySql和Jsp的中文问题解答


首先不要让我去google,找到的都是让我改成gbk或者gb2312什么的.
为了彻底解决中文问题,我所有编码都是utf8的,关于utf8的问题很少人谈到.
我mysql配置成了这样:

show variables like 'character_set%';

| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |

这样的时候在jsp中插入数据是?? ,在mysql的命令行运行同一条语句就正常显示.

然后
set names utf8;
show variables like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |

这样之后命令行也插入不了,jsp插入还是?? 命令行报错是说数据太长,肯定是指类型不对.

听说jdbc driver也要进行一个字符转换才能写入,我没找到方法,请高手指教.


Mysql使用ISO方式储存字符,JSP使用GBK显示中文,所以需要在存入和取出的过程中即使你用utf8还是一样要转码

参考程序:
public String toGBK(String input) {
try {
byte[] bytes = input.getBytes("ISO8859-1");
return new String(bytes,"GBK");
}catch(Exception ex) {
}
return input;
}
//转码GBK转ISO
public String toISO(String input) {
try {
byte[] bytes = input.getBytes("GBK");
return new String(bytes,"ISO8859-1");
}catch(Exception ex) {
}
return input;
}


靠,原来是netBeans的编码是GBK的,我靠.一直以为它是UTF-8的.


↑返回目录
前一篇: 求助:一段jsp转为asp的写法
后一篇: 有这样一个问题,求教