java插入mysql问号乱码(java连接mysql中文乱码)

发布时间:2022-11-14

本文目录一览:

  1. java编写的程序向mysql(压缩包版的那种)中插入中文数据时,在cmd中查询显示的是乱码
  2. 用JAVA插入到mysql中出现乱码是什么原因?
  3. java后台向mysql插入数据,数据库中显示乱码
  4. java写入mysql数据库乱码

java编写的程序向mysql(压缩包版的那种)中插入中文数据时,在cmd中查询显示的是乱码

你这个是因为修改了默认字符集后插入数据 造成前后不统一的问题 重新设置就没问题了

  1. 首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
  2. 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
    • 具体操作为:打开mysql安装目录下的my.ini
    • 找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用Ctrl+F定位在文件最前面输入default就会找到,都要改过来
  3. 重启MySQL服务器,在运行窗口输入:net start mysql
  4. 最重要的一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了

用JAVA插入到mysql中出现乱码是什么原因?

Mysql数据库常见乱码处理方式

  • 先分清是否是数据库乱码,如果是其它则用其它方式处理
  • 说明:i里面每条并不是说是一个解决办法,有时都要用到;ii这些方法应该能解决常见的乱码问题,并且这些解决方法都很简捷
  1. 在安装数据库的过程中将默认的拉丁文改为GBK
  2. 在创建数据库时设置选择GBK或者gb2312
  3. Mysql安装目录下的my.ini文件,将 "default-character-set=xxxxx" 中的xxxxx改成GBK或者gb2312
  4. Mysql安装目录下的\data\databasename(数据库名)\db.opt文件打开
    default-character-set=gbk
    default-collation=gbk_chinese_ci
    
    如果上面不是gbkgbk_chinese_ci则改成支持中文的GBK或者gb2312
  5. 进入Mysql的dos命令下:进入某数据库后 show full columns from tablename; 查看数据类型,如果不是支持中文的类型则执行 alter table tablename convert to character set gbk
  6. 在创建数据库时(用命令创建时)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数据库乱码

应该是中文乱码问题。可以加上编码格式的设置,同时保证与数据库编码格式一致。