为什么utf-8编码的JSP页面保存中文数据到MySQL后会变成乱码啊?

时间:2021-10-22 17:11:41
我在jsp文件中设置
<%@ page contentType="text/html;charset=utf-8" language="java" %>
提交中文信息到MySQL后,再调出来就成了乱码,直接到MySQL中查看也是乱码,请问到底应该如何设置编码啊?

14 个解决方案

#1


帮你顶一下,我也遇到了同样的问题,弄了三天了,怎么设置都不行,都是乱码

#2


用过滤器吧  很好用的  你在csdn中可以搜速到很多的
原因是服务器默认编码或浏览器问题

#3


谢谢啊,我就是想弄明白这些编码应该如何设置,包括页面,数据库,编辑器等等,我只是做了一个非常简单的jsp页面来测试,过滤器就不必了吧!

#4


试着把mysql的编码改为UTF-8,默认的mysql配置好像不是utf-8

#5


我在my.ini里面把客户端和服务端的编码都改了啊,如下:
default-character-set=utf8
以前是latin1的默认编码,是不是还要改别的地方?

#6


楼主你是在JSP中添加到数据库中还是用通过servlet?如果是servlet的话,在读取数据前req.setCharacterEncoding("UTF-8");JSP,MYSQL编码都设置为UTF-8,IDE中Java Source File编码也要设置为UTF-8

#7


谢谢关心,我只是做了一个简单的jsp页面来实验,现在把文本存入MySQL后,再调出来,在网页上显示已经不是乱码了,通过MySQL Query Browser来查看数据库,显示的也是中文,但是通过MySQL命令行的形式查看,就只能见到乱码了,这是怎么回事啊?

#8


你可以到我的blog看看下面这篇文章,自己整理给自己看的JSP+MYSQL的中文问题的汇总,或许对你有所帮助。
http://blog.csdn.net/hzxdark/archive/2006/11/19/1396376.aspx

#9


你在mysql建表时要加上DEFAULT CHARSET=utf8

#10


我前几天也是这样的问题 同样的程序几天过后什么都没改 今天突然不是乱码了 真实郁闷死了

#11


但是通过MySQL命令行的形式查看,就只能见到乱码了,这是怎么回事啊?
---------------------------------
可能是命令行窗口不支持UTF-8,可以查看命令行窗口的属性,"选项"页有"当前代码页",看看是不是UTF-8

#12


改为GB2312试试看

#13


谢谢,从命令行窗口查看utf-8的数据显示为乱码,的确是因为简体中文的windows命令行窗口不支持utf-8,选项里面没有这一字符集,只支持GBK和BIG5的中文

#14


关注中

#1


帮你顶一下,我也遇到了同样的问题,弄了三天了,怎么设置都不行,都是乱码

#2


用过滤器吧  很好用的  你在csdn中可以搜速到很多的
原因是服务器默认编码或浏览器问题

#3


谢谢啊,我就是想弄明白这些编码应该如何设置,包括页面,数据库,编辑器等等,我只是做了一个非常简单的jsp页面来测试,过滤器就不必了吧!

#4


试着把mysql的编码改为UTF-8,默认的mysql配置好像不是utf-8

#5


我在my.ini里面把客户端和服务端的编码都改了啊,如下:
default-character-set=utf8
以前是latin1的默认编码,是不是还要改别的地方?

#6


楼主你是在JSP中添加到数据库中还是用通过servlet?如果是servlet的话,在读取数据前req.setCharacterEncoding("UTF-8");JSP,MYSQL编码都设置为UTF-8,IDE中Java Source File编码也要设置为UTF-8

#7


谢谢关心,我只是做了一个简单的jsp页面来实验,现在把文本存入MySQL后,再调出来,在网页上显示已经不是乱码了,通过MySQL Query Browser来查看数据库,显示的也是中文,但是通过MySQL命令行的形式查看,就只能见到乱码了,这是怎么回事啊?

#8


你可以到我的blog看看下面这篇文章,自己整理给自己看的JSP+MYSQL的中文问题的汇总,或许对你有所帮助。
http://blog.csdn.net/hzxdark/archive/2006/11/19/1396376.aspx

#9


你在mysql建表时要加上DEFAULT CHARSET=utf8

#10


我前几天也是这样的问题 同样的程序几天过后什么都没改 今天突然不是乱码了 真实郁闷死了

#11


但是通过MySQL命令行的形式查看,就只能见到乱码了,这是怎么回事啊?
---------------------------------
可能是命令行窗口不支持UTF-8,可以查看命令行窗口的属性,"选项"页有"当前代码页",看看是不是UTF-8

#12


改为GB2312试试看

#13


谢谢,从命令行窗口查看utf-8的数据显示为乱码,的确是因为简体中文的windows命令行窗口不支持utf-8,选项里面没有这一字符集,只支持GBK和BIG5的中文

#14


关注中