java向mysql数据库中插入中文乱码问题解决
来源:互联网 发布:电影票比价软件 编辑:程序博客网 时间:2024/05/18 03:30
1.首先统一页面和数据库的编码(以utf-8)为例
在建立数据库时
create database if not exists test default character set utf8;
在建数据库和数据表时使用default charset=utf8
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键/自动增长', `username` varchar(40) DEFAULT NULL COMMENT '用户名', `password` varchar(16) DEFAULT NULL COMMENT '用户密码', `phone` varchar(40) DEFAULT NULL COMMENT '电话', `address` varchar(255) DEFAULT NULL COMMENT '地址', `rdate` datetime DEFAULT NULL COMMENT '注册日期', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
2.如果还是插入乱码,则重新对mysql进行配置
这样就可以了。
3.还有一种简单但是繁琐的用法
尽管使用数据库时我们能够正常的添加和显示中文,但是在使用程序连接数据库时并不能够正常显示中文,为此我们需要修改MySQL的默认编码,编辑my.ini(MySQL配置文件)文件对编码进行修改
设置MySQL的默认字符集为utf8,找到客户端配置[client]在下面添加。
default-character-set=utf8
找到服务器配置[mysqld]在下面添加
default-character-set=utf8
设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码
4.
MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读取数据时,都需要先转换一下编码方式:
插入数据:
如:
...
String str="中文";
String sql = "insert into Tb (xxx) values (?)"
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,str);
pstmt.executeUpdate();
这样插入到Mysql数据库后,查看数据可以看到,插入数据变成了几个“?”,即成了乱码。
插入数据的解决方法是:
String str="中文";
str = new String(str.getBytes(),"ISO8859_1"); //加入此句,改变编码为iso-8859-1
String sql = "insert into Tb (xxx) values (?)"
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,str);
pstmt.executeUpdate();
读取数据时的解决方法:
String str = new String(record.getString("wname").getBytes("ISO8859_1"));
这种办法治标不治本
5.mysql的字符集问题可以参考官方的文档
http://dev.mysql.com/doc/refman/5.1/zh/charset.html#charset-server
- java向mysql数据库中插入中文乱码问题解决
- java程序向mysql数据库插入数据中文 乱码问题解决
- java向MySQL中插入中文乱码
- java 向 mysql插入中文字符乱码问题解决
- java向数据库中插入数据,数据库乱码问题解决
- 向mysql数据库中插入中文乱码的解决方式
- java向mysql数据库插入中文时乱码
- java中利用JDBC向MySql数据库中插入中文出现乱码解决办法
- java向mysql插入数据乱码问题解决
- java向mysql插入数据乱码问题解决
- hibernate向mysql数据库插入中文乱码
- 向MySQL数据库插入中文时乱码
- MySQL数据库插入数据,中文乱码问题解决
- java程序向mysql中插入数据的中文乱码
- jsp向数据库中插入中文乱码
- 使用Hibernate向mysql数据库中插入中文,数据库中显示??乱码
- 使用Hibernate向mysql数据库中插入中文,数据库中显示??乱码
- 使用Hibernate向mysql数据库中插入中文,数据库中显示??乱码
- oracle sql优化 三 (转载)
- FF下新增event对象的srcElement、fromElement、toElement三个属性
- _countof宏应用
- JQuery在循环中绑定事件
- jquery_EasyUI的学习
- java向mysql数据库中插入中文乱码问题解决
- oracle sql优化 四(转载)
- 计算路径a对于路径b的相对路径
- js date函数详解
- mac下修改mysql的默认字符集为utf8
- 鼠标指针的隐藏
- 多线程打印问题
- 外部网关协议RGP
- Python 不区分大小写对字符串列表排序