查询之前执行一下:
set character set 'utf8' 语句(SQL)
同样写入数据执行一下:
set names 'utf8'
如果你是用的客户端直接查询mysql,可将上面的utf8改为gbk试试
在mysql下输入命令: SHOW VARIABLES LIKE 'character%'Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir D:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\
确认下各个编码是否正确..先手工在mysql中插入一条中文记录,看看是否正确,然后通过jsp插入中文,jsp文件看看是否有类似:
<%@ page pageEncoding="UTF-8"%>的编码语句,jsp文件本身是否为utf8编码?再确认下问题发生在哪里?
mysql出现乱码的原因很复杂,实在不好帮你定位.
首先把你的页面设置成这个字符集:Window--Preferences--输入jsp,搜索--点击jsp--在相应的字符集设置上设置成自己想要的编码集。
如果这样还是不行的话,说明你数据库字符集设置有问题,这样设置:
首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
把服务器和客户端的字符集改成自己想用的字符集:GB2312
具体 *** 作为:打开mysql安装目录下的myini.tet
找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用ctrl+f定位在文件最前面输入defaul就会找到,都要改过来
重启MySQL服务器,在运行窗口输入:net start mysql
最重要的是一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)