本文目录一览:
- java编写的程序向mysql(压缩包版的那种)中插入中文数据时,在cmd中查询显示的是乱码
- 用JAVA插入到mysql中出现乱码是什么原因?
- java后台向mysql插入数据,数据库中显示乱码
- java写入mysql数据库乱码
java编写的程序向mysql(压缩包版的那种)中插入中文数据时,在cmd中查询显示的是乱码
你这个是因为修改了默认字符集后插入数据 造成前后不统一的问题 重新设置就没问题了
- 首先把MySQL的服务停掉 在运行窗口输入:
net stop mysql
- 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
- 具体操作为:打开mysql安装目录下的
my.ini
- 找到
default-character-set
,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set
,用Ctrl+F
定位在文件最前面输入default
就会找到,都要改过来
- 具体操作为:打开mysql安装目录下的
- 重启MySQL服务器,在运行窗口输入:
net start mysql
- 最重要的一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了
用JAVA插入到mysql中出现乱码是什么原因?
Mysql数据库常见乱码处理方式
- 先分清是否是数据库乱码,如果是其它则用其它方式处理
- 说明:i里面每条并不是说是一个解决办法,有时都要用到;ii这些方法应该能解决常见的乱码问题,并且这些解决方法都很简捷
- 在安装数据库的过程中将默认的拉丁文改为GBK
- 在创建数据库时设置选择GBK或者gb2312
- Mysql安装目录下的
my.ini
文件,将"default-character-set=xxxxx"
中的xxxxx
改成GBK或者gb2312 - Mysql安装目录下的
\data\databasename(数据库名)\db.opt
文件打开
如果上面不是default-character-set=gbk default-collation=gbk_chinese_ci
gbk
和gbk_chinese_ci
则改成支持中文的GBK或者gb2312 - 进入Mysql的dos命令下:进入某数据库后
show full columns from tablename;
查看数据类型,如果不是支持中文的类型则执行alter table tablename convert to character set gbk
- 在创建数据库时(用命令创建时)
create database databasename CHARACTER SET gbk;
这是我当年总结的,现在都用oracle了,越学忘记的越多了,不过mysql只要里面的几条必好使。
java后台向mysql插入数据,数据库中显示乱码
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级。最终是字段级的字符集设置。注意前三种均为默认设置,并不代表你的字段最终会使用这个字符集设置。所以我们建议要用 show create table table;
或 show full fields from tableName;
来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有:Client端,connection, results。通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在传输过程中的转换错误。基本上99%的乱码由此造成。
上面是我抄网上的资料来的。我试了一下。发现:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
解决方法已经找到。进入数据后:
use 数据库名;
set names utf8;
不过这样会每次进入都必须重新设置。因此,还可以在/etc/mysql/my.conf
里添加:
[mysql]
#no-auto-rehash
#faster start of mysql but no tab completion
default-character-set=utf8
这样数据库就不每次按照utf8字符集来导入到数据库了。
java写入mysql数据库乱码
应该是中文乱码问题。可以加上编码格式的设置,同时保证与数据库编码格式一致。