SSH框架 使用mysql 数据库中文乱码问题

zengjava 2010-01-26 05:08:36
使用MYsql数据库 网上搜了很多办法 比如改什么my.ini 都用了 但是 输入中文后 mysql 中仍然是乱码, 后来把myeclips 编码改成 UTF-8 后 只要输入中文 就出错。
...全文
792 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengjava 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhengkaifl 的回复:]
楼主先试试页面传到Struts中的中文是不是乱码,直接打印到控制台上就可以看出来
如果不是乱码那就说明是数据库的问题,将数据库重装一下就可以了,注意重装的时候将数据库的编码改成GBK

如果打印出来的是乱码的话,那就需要自己写一个过滤器来处理一下了

Struts2中可以直接配置一下,不需要自己写中文过滤器
你先按照上面的方法检查下,定位错误的位置才好改
[/Quote]
Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.42-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use new_db1
Database changed
mysql> select * from producttype
-> ;
+--------+-------------+------------+------------------+------------+---------+-
---------+
| typeid | goodsAmount | goodsKinds | goodsname | goodsprice | visibel |
parentid |
+--------+-------------+------------+------------------+------------+---------+-
---------+
| 1 | 28 | 0iiii | 脰脨脦脛 | 258 |
| NULL |
| 2 | 28 | 1iiii | 脰脨脦脛 | 258 | |
NULL |
| 3 | 28 | 2iiii | 脰脨脦脛 | 258 | |
NULL |
| 4 | 28 | 3iiii | 脰脨脦脛 | 258 | |

我想应该是 mysql 数据库的问题
jumpheightway 2010-01-27
  • 打赏
  • 举报
回复
直接在mysql操作窗口中输入中文
看会不会出错
如果是修改my.ini文件
则需要重启不是改了就马上有效
Arthur0088 2010-01-27
  • 打赏
  • 举报
回复
jdbc:mysql://localhost:3306/hrm_db?useUnicode=true&characterEncoding=utf-8

应该是utf-8,不是utf8

还有保证你的数据库编码是utf-8
licip 2010-01-27
  • 打赏
  • 举报
回复
url=jdbc:mysql://localhost:3306/new_db1?useUnicode=true&characterEncoding=utf8这句要加,而且你的数据库也必须是UTF-8编码的。
小霍夫 2010-01-27
  • 打赏
  • 举报
回复
这些问题在csdn上提了不下百次了。

乱码。。。。。。。
zengjava 2010-01-27
  • 打赏
  • 举报
回复
在将这些内容 设置成utf8 的编码形式后
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+---------------------------------------------------
-----+
| 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 | C:\Program Files\MySQL\MySQL Server 5.1\share\char
ets\ |
+--------------------------+---------------------------------------------------
-----+
8 rows in set (0.00 sec)
///////////////////////////
并且将jdbc.url=jdbc:mysql://localhost/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8 加入后再添加数据 仍然乱码 非常不解。 太杯具了,实在想不通!!!!!!
Clarity-Black 2010-01-26
  • 打赏
  • 举报
回复
楼主先试试页面传到Struts中的中文是不是乱码,直接打印到控制台上就可以看出来
如果不是乱码那就说明是数据库的问题,将数据库重装一下就可以了,注意重装的时候将数据库的编码改成GBK

如果打印出来的是乱码的话,那就需要自己写一个过滤器来处理一下了

Struts2中可以直接配置一下,不需要自己写中文过滤器
你先按照上面的方法检查下,定位错误的位置才好改
crazylaa 2010-01-26
  • 打赏
  • 举报
回复
web乱码
http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
xieruilin133 2010-01-26
  • 打赏
  • 举报
回复
jdbc:mysql://localhost:3306/new_db1?characterEncoding=utf8

这样吧?
GOon_star 2010-01-26
  • 打赏
  • 举报
回复
在连接数据库的时候加上参数就可以了
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/test?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
zl3450341 2010-01-26
  • 打赏
  • 举报
回复
 <filter>
<filter-name>char</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
zengjava 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 crazylaa 的回复:]
连接字符串中,有没有加 charsetEncoding=utf8
[/Quote]
我也这样配置了
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/new_db1?useUnicode=true&characterEncoding=utf8
username=root
password=admin
initialSize=1
maxActive=100
maxIdlle=8
minIdle=1
xieruilin133 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 crazylaa 的回复:]
连接字符串中,有没有加 charsetEncoding=utf8
[/Quote]
my.ini不用改,myeclips更不用改,直接在连接串最后加上****?charsetEncoding=utf8 就可以了
crazylaa 2010-01-26
  • 打赏
  • 举报
回复
连接字符串中,有没有加 charsetEncoding=utf8
zengjava 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luffyke 的回复:]
XML code<!-- 统一编码UTF-8--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>
org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

数据库统一用UTF-8
页面也用UTF-8
一般统一一下编码就没问题的!!!
[/Quote]
在web.xml文件中写入了 这些 而且将mysql文件夹下的 my.ini 文件修改成
# MySQL Server Instance Configuration File
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
default-character-set=utf8
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=5M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
sort_buffer_size=212K
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
还是不能够实现中文的输入
mouer 2010-01-26
  • 打赏
  • 举报
回复
怀疑改的my.ini不对..
看下服务里面mysql对应的my.ini是哪个
hoojo 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luffyke 的回复:]
XML code<!-- 统一编码UTF-8--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>
org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

数据库统一用UTF-8
页面也用UTF-8
一般统一一下编码就没问题的!!!
[/Quote]
上面的过滤器是spring自带的,解决乱码
luffyke 2010-01-26
  • 打赏
  • 举报
回复
上面那段时写在web.xml文件中的
luffyke 2010-01-26
  • 打赏
  • 举报
回复

<!-- 统一编码UTF-8 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


数据库统一用UTF-8
页面也用UTF-8
一般统一一下编码就没问题的!!!

81,094

社区成员

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

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