ERROR 1366 (HY000): Incorrect string value: ...
kkk라는 테이블이 아래와 같은 형식으로 생성되어 있다고 가정하면,
mysql> show create table kkk;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
| kkk | CREATE TABLE `kkk` (
`bdid` bigint(11) unsigned NOT NULL,
`name` varchar(80) NOT NULL,
PRIMARY KEY (`bdid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
위와 같이 kkk라는 테이블이 있을 경우 DEFAULT CHARSET=latin1으로 되어 있다.
이때 한글을 name 필드에 insert하게 되면 아래와 같은 에러가 발생한다.
mysql> insert into kkk (bdid, name) values (1, '한글입력');
ERROR 1366 (HY000): Incorrect string value: '\xED\x95\x9C\xEA\xB8\x80...' for column 'name' at row 1
이 문제 해결을 위해서는 default character set을 utf8로 변경해 주면 깨끗이 해결된다.
kkk라는 테이블을 생성하는 DDL 문에서 아예 utf8로 설정해서 테이블을 생성해 주면 된다.
다음과 같이
CREATE TABLE `kkk` (
`bdid` bigint(11) unsigned NOT NULL,
`name` varchar(80) NOT NULL,
PRIMARY KEY (`bdid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
댓글 없음:
댓글 쓰기