Mysql <==> java 怎么确保不乱码?

kong_resty 发布于 2012/03/31 14:01
阅读 914
收藏 1

MySQL连接为什么挂死了?别踩坑!>>>

| 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

1.mysql以上编码每一条都是什么意思?

2.怎么永久修改mysql的以上编码

3.怎么确保java程序 和mysql 数据库之间的交互不乱码?

4.创建表结构的时候为什么要定义表的编码

 

 

 

加载中
1
DustLeon
DustLeon

这个不是你数据库编码的问题,现在你的Mysql是可以存汉字的,如果你在windows下的话,可以下载一个navicat,直接可视化存数据进去。

你就会发现是存得进去的,然后在命令行下select出来,应该是乱码的,这说明是Mysql命令行窗口的问题,而不是你本身建的数据库编码的问题。

0
红薯
红薯
如果不熟悉,请在安装时就设置好utf8编码就不需要操心乱码问题,这是windows下的
0
kong_resty
kong_resty

现在我又出现新问题了:

        我重新安装了 mysql

        mysql> use test;
Database changed
mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------
-----+
| 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.5\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| dept           |
| emp            |
+----------------+
2 rows in set (0.00 sec)

mysql> desc emp;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| ename     | varchar(32)  | YES  |     | NULL    |                |
| sal       | decimal(8,2) | YES  |     | NULL    |                |
| hire_date | date         | YES  |     | NULL    |                |
| deptno    | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> show create table emp;
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------+
| Table | Create Table


                                           |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------+
| emp   | CREATE TABLE `emp` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ename` varchar(32) DEFAULT NULL,
  `sal` decimal(8,2) DEFAULT NULL,
  `hire_date` date DEFAULT NULL,
  `deptno` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------+
1 row in set (0.00 sec)

mysql> insert into emp(ename, sal, hire_date)
    ->  values('张三',1000, '2009-2-1');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'ename
' at row 1
mysql>

红薯大哥 解释下吧

0
kong_resty
kong_resty

我试试看

0
kong_resty
kong_resty

貌似第二个问题找到了  我终端输入的中文是GBK编码

接下来的问题是 怎么下能让终端输入utf-8的编码呢

0
ObjNotFoun
ObjNotFoun
MySQL-Front
0
DustLeon
DustLeon

引用来自“章彦儿”的答案

貌似第二个问题找到了  我终端输入的中文是GBK编码

接下来的问题是 怎么下能让终端输入utf-8的编码呢

貌似DOS编码是utf-8也是会乱码(dos命令:chcp 65001),哈哈

这样就没问题,不过。。。。

0
陈海洋
陈海洋
推荐你用工具建表,别敲命令
返回顶部
顶部