utf-8 인코딩된 텍스트를 MySQL 테이블에 로드하는 중
큰 CSV 파일이 있어서 MySQL 테이블에 로드하려고 합니다.그러나 이러한 데이터는 일부 비영어 문자를 포함하기 때문에 utf-8 형식으로 인코딩됩니다.저는 이미 표에 해당하는 열의 문자 집합을 utf-8로 설정했습니다.하지만 파일을 로드할 때는.영어가 아닌 문자가 이상한 문자로 바뀝니다(테이블 행에서 선택할 때).테이블에 데이터를 로드하기 전에 데이터를 인코딩해야 합니까?만약 그렇다면 어떻게 해야 할까요?저는 파이썬을 사용하여 데이터를 로드하고 LOAD DATA LOCAL INFILE 명령을 사용하고 있습니다.감사해요.
해라
LOAD DATA INFILE 'file'
IGNORE INTO TABLE table
CHARACTER SET UTF8
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
http://dev.mysql.com/doc/refman/5.1/en/load-data.html, 에서 말한 바와 같이, LOAD DATA LOCAL INFILE의 "CHARKER SET" 옵션 파라미터를 사용하여 CSV 파일에 사용되는 문자 집합을 지정할 수 있습니다.
파일의 문자를 인코딩할 필요는 없지만, 이 파일을 데이터베이스에 로드하기 전에 UTF-8에서 파일이 인코딩되었는지 확인해야 합니다.
보내주셔야 합니다.
init_command = 'SET NAMES UTF8'
use_unicode = True
charset = 'utf8'
예를 들어 MySQLdb.connect()를 수행할 때.
dbconfig = {}
dbconfig['host'] = 'localhost'
dbconfig['user'] = ''
dbconfig['passwd'] = ''
dbconfig['db'] = ''
dbconfig['init_command'] = 'SET NAMES UTF8'
dbconfig['use_unicode'] = True
dbconfig['charset'] = 'utf8'
conn = MySQLdb.connect(**dbconfig)
편집: 아, 죄송합니다. "LOAD DATA LOCAL INFILE"을 사용하고 있다고 추가하셨네요. 처음 질문에서 명확하지 않았습니다. :)
이런 거 해봐요.
데이터 로컬 파일 "파일"을 '|'로 선택적으로 ''로 둘러싸인 '|'로 끝나는 테이블 메시지_히스토리 문자 집합 UTF8 열에 로드합니다.
원래 구조,
https://dev.mysql.com/doc/refman/8.0/en/load-data.html
언급URL : https://stackoverflow.com/questions/4957900/loading-utf-8-encoded-text-into-mysql-table
'programing' 카테고리의 다른 글
| 하위 쿼리를 사용하는 쿼리는 하위 쿼리 대신 고정 데이터가 있는 동일한 쿼리보다 더 긴 시간이 필요합니다. (0) | 2023.09.15 |
|---|---|
| null 값을 외부 키 필드에 전달하는 방법? (0) | 2023.09.15 |
| "docker run -d" 후 도커 컨테이너가 자동으로 중지됩니다. (0) | 2023.09.15 |
| $($).wtclick', '#id', 함수({}) 대 $('#id'.wtclick', 함수({}) (0) | 2023.09.15 |
| 문자열에 붙여넣기 (0) | 2023.09.15 |