java+javabean+mysql 中文乱码问题

冰雨一叶 发布于 2012/12/15 12:39
阅读 981
收藏 1
我现在的问题是这样的:

jsp页面中,编码是这样设置的:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

javabean中的文件是这样设置的:
request.setCharacterEncoding("UTF-8");

数据库中相应表的字符集编码是设置成的:UTF-8 .

整个web工程的编码属性 也是设置成的UTF-8 .

现在 , jsp前台页面正常显示中文 ,传到javabean后台也可以正常显示中文 , 但是存储到数据库后 , 存储的内容就是乱码(数据库存储为verchar类型),从数据库中取出来以后还是乱码 。

请问各位大神们 ,如何解决这个乱码问题 ??
加载中
0
lin82765502
lin82765502
数据库的charset也得是utf8
0
冰雨一叶

引用来自“lin82765502”的答案

数据库的charset也得是utf8
您说的是字符集吗 ?字符集就是用的utf8 , 同时 GBK ,GB2312 也试过了 ,但还是不行啊。。。不知道是不是前台后台数据库三者之间是不是有什么编码上的组合或者字符集才行 ?求大神指教 。
0
VilenEera
VilenEera
输入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               | /usr/ share/mysql/charsets/ |

+ ------------------------------------+-----------------------------------+

8  rows  in  set ( 0 .00 sec)
数据库有好几个选项

VilenEera
VilenEera
设置完了最好重新create database 一下。
0
冰雨一叶

引用来自“VilenEera”的答案

输入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               | /usr/ share/mysql/charsets/ |

+ ------------------------------------+-----------------------------------+

8  rows  in  set ( 0 .00 sec)
数据库有好几个选项

不好意思 , 能不能再详细一点 ? 我不太懂。。。
VilenEera
VilenEera
mysql登录以后输入 show variables like 'character%'; 查看哪里的编码不对。
0
南湖船老大
南湖船老大
表字段编码呢?JDBCURL的编码呢?
0
冰雨一叶

引用来自“妖魔舞”的答案

表字段编码呢?JDBCURL的编码呢?
这个我真的不知道怎么查看 , 我对数据库的只是真的比较有限 ,请您说的详细一点可以吗 ?感激不尽了。
0
南湖船老大
南湖船老大

数据库编码分四级啊。这四个地方都尽量一致,不然就是和自己过不去。还不懂就google去吧

数据库编码-数据表编码-字段编码,还有个连接编码。

连接编码就是jdbc URL里的那个,形如:jdbc:mysql://127.1:3306/test?useUnicode=true&characterEncoding=UTF8&user=root&password=123

0
冰雨一叶

引用来自“妖魔舞”的答案

数据库编码分四级啊。这四个地方都尽量一致,不然就是和自己过不去。还不懂就google去吧

数据库编码-数据表编码-字段编码,还有个连接编码。

连接编码就是jdbc URL里的那个,形如:jdbc:mysql://127.1:3306/test?useUnicode=true&characterEncoding=UTF8&user=root&password=123

嗯嗯 , 那另外三级应该怎么设置呢 ? 还有如果javabean 中的字符编码不是UTF-8 , 是不是还要先用new String(request.getp..().getBytes(""),"") ; 来转换成utf-8呢 ?前台后台和数据库的字符集编码是不是必须是一致的 ?
南湖船老大
南湖船老大
google吧
0
功夫panda
功夫panda

我之前遇到过此问题,跟你的一模一样。在后台的编码头调成一样之后不起作用,测试好几遍,结果重启电脑之后好了。原因可能是有缓存或者其他的。你试试。

0
冰雨一叶

引用来自“monkey~”的答案

我之前遇到过此问题,跟你的一模一样。在后台的编码头调成一样之后不起作用,测试好几遍,结果重启电脑之后好了。原因可能是有缓存或者其他的。你试试。

谢谢你 ,不过重启电脑  ,就是意味着重新启动mysql 就可以了 。
返回顶部
顶部