大伙看一个jsp查询mysql乱码问题

zsf0615020117 2009-06-10 10:53:20

在servlet中,从mqsql查找varchar字段的name属性上来,再传递到jsp页面,当我的jsp页面的字符编码是gb2312的时候,显示的是“?”,改为UFT8的时候,显示的也不知道是什么文字 ,如果从mysql查找的是int类型,却显示正常

大伙看看怎样才能显示中文 (我的mysql是安装时的默认的编码方式)
...全文
104 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你安装 mysql的时候选择utf8,建立数据库和表格也选择utf8格式,应该会没有问题的
tyt2222008 2009-06-11
  • 打赏
  • 举报
回复
我的博客中关于中文乱码的文章,可以作参考: http://blog.sina.com.cn/s/blog_5108ece10100czm3.html
shangdi8668 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 LeaCen 的回复:]
数据库编码:GBK
..........
String c = "廖嫚玥";
//c=new String(c.getBytes("iso-8859-1"),"GBK");
..........
while(rs.next()){
b = new String(rs.getString("cname"));
//out.println(new String(b.getBytes("iso-8859-1"),"GBK"));
out.println(b);
}
shangdi8668 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gua_ma 的回复:]
lz不用那么麻烦的了。。

我也遇到过这个问题的

在mysql安装目录下有个my.ini文件里的两个地方修改即可:
default-character-set=gbk
default-character-set=gbk
默认安装的mysql默认的字符集不是这样的。
你修改下就好了
但是我以前是修改了还没好。然后把所有的java页面都用的是UTF-8的字符集编码
之后就完全ok的了。java页面最好是使用UTF-8,而不是gbk。
[/Quote]

正解
wanghao1987 2009-06-11
  • 打赏
  • 举报
回复
数据库的问题
zsf0615020117 2009-06-11
  • 打赏
  • 举报
回复
开始按默认安装,数据库显示的是正常的中文,后来重新安装,改为utf了,然后数据库就显示乱码了
LeaCen 2009-06-11
  • 打赏
  • 举报
回复
数据库编码:GBK

java.sql.Connection conn;
java.sql.Statement st;
java.sql.ResultSet rs;

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
conn= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/usp?characterEncoding=GBK","root","database");
st = conn.createStatement();

String c = "廖嫚玥";
c=new String(c.getBytes("iso-8859-1"),"GBK");
st.execute("insert into S_INSURANCE_DATA(cname) values('"+c+"')");
rs = st.executeQuery("select cname from S_INSURANCE_DATA");
String b = "";
while(rs.next()){
b = new String(rs.getString("cname"));
out.println(new String(b.getBytes("iso-8859-1"),"GBK"));
}


结果:廖?牜h ???


求解!
tanliangwei520 2009-06-11
  • 打赏
  • 举报
回复
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
shmilycharlene 2009-06-11
  • 打赏
  • 举报
回复
数据库默认的编码是拉丁文.所以一定要该为支持中文的字符集才可以,
gb2312 gbk utf-8都可以.
sangshusen_1988 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zsf0615020117 的回复:]
开始按默认安装,数据库显示的是正常的中文,后来重新安装,改为utf了,然后数据库就显示乱码了
[/Quote]
不知道楼主是用mysql客户端查看的数据?还是说程序访问的数据是乱码?
可能使用mysql客户端会是乱码,因为,本地编码是gbk,它把数据库的数据按gbk显示出来了,而
数据编码却是utf8,
改成utf8,
用程序访问应该没问题
gua_ma 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zsf0615020117 的回复:]
开始按默认安装,数据库显示的是正常的中文,后来重新安装,改为utf了,然后数据库就显示乱码了
[/Quote]

那个数据库就用我说的方法啊。在my.ini里面修改即可。
只用gbk。不用utf。。然后页面全部用UTF-8就可以了的。
修改完了之后要重启mysql服务。
qiheia 2009-06-11
  • 打赏
  • 举报
回复
建议页面改成utf-8的形式,mysql默认的编码方式是utf-8

在一个你数据库中是不是乱码。。。
wyprofessional 2009-06-11
  • 打赏
  • 举报
回复
数据库安装时的编码问题
dawnstar2008 2009-06-10
  • 打赏
  • 举报
回复
我以前安装mysql的时候用的是utf-8,用的时候没出过问题,你也可以试一试用utf-8安装mysql
loveunittesting 2009-06-10
  • 打赏
  • 举报
回复
1楼说的对,先检查一下库里面是不是乱码吧,如果不过,在数据库连接字符串上修改一下字符编码看看
emon123 2009-06-10
  • 打赏
  • 举报
回复
你装的时候选的默认编码是不行的,数据库的中文都会是乱码,重装下吧,装的时候选择gbk编码。
jumpheightway 2009-06-10
  • 打赏
  • 举报
回复
数据库里面是不是乱码
gua_ma 2009-06-10
  • 打赏
  • 举报
回复
lz不用那么麻烦的了。。

我也遇到过这个问题的

在mysql安装目录下有个my.ini文件里的两个地方修改即可:
default-character-set=gbk
default-character-set=gbk
默认安装的mysql默认的字符集不是这样的。
你修改下就好了
但是我以前是修改了还没好。然后把所有的java页面都用的是UTF-8的字符集编码
之后就完全ok的了。java页面最好是使用UTF-8,而不是gbk。
yonghenghxq 2009-06-10
  • 打赏
  • 举报
回复
你在获取的页面上在获取的时候设置一下编码格式
如:在页面上获取时用String name=request.getParameter("Name").getBytes("ISO-8859-1");

关于处理编码问题时你可以用个过滤器先过滤在对其进行处理
sangshusen_1988 2009-06-10
  • 打赏
  • 举报
回复
最好改成utf8的,程序全部也用utf-8的编码

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧