数据库的编码问题
1 問題
幾天碼代碼的時候,發現往表中插入漢字的時候報如下錯誤
java.lang.RuntimeException: java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE6\x98\xAF...' for column 'name' at row 1 Query: update account set name=?,money=? where id = ? Parameters: [我是A, 1500.0, 1]報運行時異常,java的SQL異常:不正確的字符串值。
打開數據發現亂碼
2 找出問題
查看數據庫的編碼格式
mysql> show create database test; +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+---------------------------------------------------------------+ 1 row in set (0.00 sec)發現數據庫test的默認編碼格式為utf8,
mysql> show create table account; +---------+------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+------------------------------------------------------------------------------------------------+ | account | CREATE TABLE `account` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`money` float(255,0) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 | +---------+------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)發現表的編碼格式為latin1
網上找了一個命令alter table 表名稱 convert to character set utf8;
使用后發現,標的默認編碼是改過來了。字段還是有問題。
字段有問題
mysql> select * from account; +----+------+-------+ | id | name | money | +----+------+-------+ | 1 | AAA | 1500 | | 2 | ??B | 100 | | 3 | ccc | 500 | | 4 | ddd | 0 | | 5 | eee | 1200 | +----+------+-------+ 5 rows in set (0.00 sec)再往表中插入漢字,發現可以了。
mysql> UPDATE account SET `name`='我是A', money=100 WHERE id=1mysql> select * from account; +----+-------+-------+ | id | name | money | +----+-------+-------+ | 1 | 我是A | 100 | | 2 | ??B | 100 | | 3 | ccc | 500 | | 4 | ddd | 0 | | 5 | eee | 1200 | +----+-------+-------+ 5 rows in set (0.00 sec)可以發現:
修改表的編碼格式時就可以了,但是第二個是已經插入進去了,已經是亂碼了,無法改變了。
總結
- 上一篇: spring框架搭建第二天
- 下一篇: Tomcat5+Mssql server