[MySQL 질문] 파일 insert 시 발생하는 encoading 문제
글쓴이: arizona0 / 작성시간: 수, 2015/07/08 - 5:39오후
여러 개의 column이 탭(\t)으로 구분되어있는 파일을 LOAD DATA INFILE을 사용하여 테이블에 삽입하려고 합니다.
일부 column들에는 한글 데이터가 포함되어 있습니다.
이 파일은 현재 iso-8859-1로 encoding되어 있습니다.
LOAD DATA INFILE을 이용해서 데이터베이스에 insert해보니 한글 데이터들은 insert되지 않았습니다.
그래서 iconv를 사용하여 iso-8859-1 --> utf-8으로 변환해서 해보았더니 한글 부분이 깨져서 insert됐습니다.
다시, iconv를 사용하여 iso-8859-1 --> euckr로 변환하려 했더니 변환할 수 없는 문자가 포함되어 있다는 오류로 인하여 변환을 할 수 없었습니다.
마지막으로 LOAD DATA LOCAL INFILE fine_name INTO table_name CHARACTER SET euckr FIELDS TERMINATED BY '\t\'을 사용해서 charcter set을 지정해 줘도 한글이 깨져서 insert 됩니다.
여러 가지 시도를 해보았으나 해결이 안됩니다. 결국 파일을 한 라인씩 읽어서 각각 input을 해줘야 하는 건가요?
Forums:
지저분한
테이블이나 DB를 utf-8 으로 바꾸지 않는 이상 '정상적인' 방법으로는 INSERT 하는 방법이 없다고 알고 있습니다.
INSERT 하려는 UTF-8 문자열을 그대로 바이너리 리터럴로 변환하여 INSERT하는 방법이 있겠습니다. 아마 text 컬럼은 text 계열 타입으로 되어 있겠죠?
https://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#operator_binary
댓글 달기