JSP+MySQL 中文乱码问题

miaomiao_0316 2006-11-29 03:49:23
我的连接字符串是这样写的......useUnicode=true&characterEncoding=gbk
在建立数据库时也指定的是GBK,可在向数据库插入数据时为乱码?
然后我在插入之前进行了编码转换,但不管是转成GBK还是转成ISO8859_1都不行,合是乱码?
应该怎么解决啊?
...全文
599 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcj1981 2006-12-02
  • 打赏
  • 举报
回复
看看mysql手册,那个上面有数据库的原理性东西,数据库在存储数据的时候是如何操作的。

看懂这些的话就不难了,我也碰到过跟你一样的问题,也是弄了很多天才解决。

如果按你说的,表建成gbk,那么把你连接的useUnicode=true&characterEncoding=gbk去掉

直接来一句stat.execute("set names GBK");

剩下的进行手动相应转码。

不过还是建议使用utf8统一编码,省事!
anson2003 2006-12-02
  • 打赏
  • 举报
回复
主要是5.0装的时候配置mysql的时候请选用utf-8编码,默认是latin1
zhangjingqiang 2006-12-01
  • 打赏
  • 举报
回复
UTF-8
wddodo 2006-12-01
  • 打赏
  • 举报
回复
这个问题我也遇到了,不过已经解决。我的做法如下
1、修改mysql.ini中的默认字符集为gbk
2、设置页面用户请求(request)和响应(response)的字符集为GBK,当然页面字符集肯定也设置为gbk
3、在插入数据库时,对于String 使用GBK字符集重新构造后在存入数据库。
我用的是windows2003server +Tomcat5.5.20+mysql5.0,目前页面显示和数据库存储内容都正常。
tqb_nj 2006-12-01
  • 打赏
  • 举报
回复
所有的编码都设置为统一编码,然后在servlet读取,返回时手动设置request,reponse编码为统一编码,另外IDE相应的文件编码也要设置为统一编码
good_pb 2006-12-01
  • 打赏
  • 举报
回复
我用是的windowsXPsp2 +Tomcat6。0+mysql5.0
在按装MYSQL时用GBK,在jsp页面用UTF—8再用过滤器过滤器过滤一下就行了
,过滤器用UTF-8,就没有问题了
hzxdark 2006-12-01
  • 打赏
  • 举报
回复
你可以到我的blog看看下面这篇文章,自己整理给自己看的JSP+MYSQL的中文问题的汇总,或许对你有所帮助。
http://blog.csdn.net/hzxdark/archive/2006/11/19/1396376.aspx
tyroboy 2006-12-01
  • 打赏
  • 举报
回复
全都用utf-8就没有编码问题了!页面用,数据库也用!
fxl545826 2006-11-30
  • 打赏
  • 举报
回复
不用这样吧 这样我感觉是最麻烦的了,直接用过滤器在些之前全部转换为gb2312,而度库的时候应该不用写,系统应该会自动完成吧!我感觉过滤器是方便的
代码是public class EncodingFilter implements Filter
{
protected FilterConfig filterConfig;
private String targetEncoding = "gb2312";

public void init(FilterConfig config) throws ServletException
{
this.filterConfig = config;
this.targetEncoding = config.getInitParameter("encoding");
}

public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
throws IOException, ServletException
{

HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding);
chain.doFilter(srequest,sresponse);
}

public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}

public void destroy()
{
this.filterConfig=null;
}
}
miaomiao_0316 2006-11-30
  • 打赏
  • 举报
回复
快疯了,怎么设置都不行啊!!!!!
miaomiao_0316 2006-11-30
  • 打赏
  • 举报
回复
乱码应该怎么解决啊????????
baobao28 2006-11-30
  • 打赏
  • 举报
回复
MYSQL用的是UTF-8
zzlw 2006-11-29
  • 打赏
  • 举报
回复
我使用的一种方式解决了乱码,可以参考一下

1、数据库和表的编码latin
2、页面用gb2312,
3、连接数据库时用iso-8859-1,
4、存库前将中文转码:gb2312转为iso-8859-1,
5、读库时转码:iso-8859-1转为gb2312,
6、request.getparameter时转码:iso-8859-1转为gb2312

我的数据库版本是mysql4.1,

miaomiao_0316 2006-11-29
  • 打赏
  • 举报
回复
xintianxia() 你的意思是我得重装MYSQL???

不会吧?有没有其它解决办法?
xintianxia 2006-11-29
  • 打赏
  • 举报
回复
安装Mysql的时候,选择多语言支持就好了,也就是选择utf-8
miaomiao_0316 2006-11-29
  • 打赏
  • 举报
回复
系统是win2000server tomcat5.1.7 mysql5.0 页面都是GB2312 设置了过滤器(filter)
连接字符串用的是gb2312,在写入数据库时也进行了编码转换,但就是出现乱码
我用的是MySQL-Front,这里面显示是乱码
xcgh 2006-11-29
  • 打赏
  • 举报
回复
你的发布环境是什么,设置为gbk了吗?系统是什么,如果是linux,还要设置linux为gbk
miaomiao_0316 2006-11-29
  • 打赏
  • 举报
回复
大家帮忙看看啊,我试了好多方法都不行!!应该怎么解决啊!!
miaomiao_0316 2006-11-29
  • 打赏
  • 举报
回复
mtou(逆风) mysql数据库需要是utf8 什么意思,是说连接字符串和数据库都要设置为utf8的吗??

我写入的时候进行了编码转换,可我用MySQL Front查看时就是乱码!!
allright_flash 2006-11-29
  • 打赏
  • 举报
回复
用的是哪个版本的mysql数据库,3.0以下的mysql数据库没有乱码问题,3.0以上的mysql数据库需要进行转换,最好是读出、写入都要转换。
加载更多回复(2)

81,116

社区成员

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

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