source

mysql로 가져올 때 utf8 가글링됨

nicesource 2023. 10. 21. 10:31
반응형

mysql로 가져올 때 utf8 가글링됨

UTF8 인코딩된 데이터를 mysql로 가져오는 것은 저에게 효과가 없습니다.UTF8 문자가 손상되었습니다.예를 들어, Nöthnagel은 Nãthnagel로 표시됩니다.

UTF-8 인코딩된 데이터가 포함된 Import를 하기 위해 sql dump 파일을 만들었습니다.예를 들어,

INSERT INTO `users` VALUES(1, 'Fred','Nöthnagel');

파일에서 ö를 나타내는 바이트의 순서는 c3 b6이며, vim과 다음 환경 변수가 설정된 나의 bash shell에 정확하게 표시되기 때문에 정확하다고 생각합니다.

$ env | grep -i utf
LANG=en_US.UTF-8
XTERM_LOCALE=en_US.UTF-8

다음과 같이 mysql db가 생성되었습니다.

mysql> CREATE DATABASE mydb CHARACTER SET utf8;

mysql 테이블은 다음과 같이 작성되었습니다.

CREATE TABLE `users` (  
    `id` int(11) NOT NULL AUTO_INCREMENT,  
    `first_name` varchar(30) NOT NULL,  
    `last_name` varchar(30) NOT NULL,
    PRIMARY KEY (`id`),  
    UNIQUE KEY `last_name` (`last_name`)  
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  

덤프 파일을 다음과 같이 가져옵니다.

 mysql -u root -psecret mydb < mydump.sql

위에서 누락된 부분이 무엇인지 알려주시기 바랍니다.

저는 그게 컬래버레이션과도 관련이 있을 거라고요.제 경우에는 확실히 그랬습니다. 왜냐하면 저는 키릴을 지지해야만 했기 때문입니다.
해봐요, 저를 위해 일했어요

  1. 대상 데이터베이스를 생성하는 동안 초기 데이터 정렬을 다음으로 설정합니다.utf8_unicode_ci

  2. 더하다SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';sql 파일의 맨 위에

  3. 달려.mysql -u root -p --default-character-set=utf8 yourDB < yourSQLfile.sql

한 가지 더 말씀 드리자면, UTF-8 데이터를 데이터베이스에서 제대로 가져오려면 연결 문자열도 수정해야 합니다.예를 들어,

mysql.url=jdbc:mysql://localhost:3306/nbs?useJvmCharsetConverters=false&useDynamicCharsetInfo=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&useEncoding=true

그리고 제 문제가 무엇이었는지도 한 번 살펴보시기 바랍니다.

데이터베이스로 utf8 테이블을 가져오려면 다음 명령을 사용합니다.

mysql -u USERNAME  -pPASSWORD --default_character_set utf8  DATABASE < file.sql

이 문제는 sql 파일 상단에 다음을 추가하여 해결되었습니다.

SET NAMES utf8;

저도 비슷한 문제가 있었습니다.UTF8이 되어야 하는 변수는 데이터베이스뿐만 아니라 클라이언트, 연결, 기타 서버 등 여러 가지가 있습니다.

당신의 문제에 대한 해결책이 이 기사에 설명되어 있습니다.설명된 솔루션은 휴대용이므로 utf8뿐만 아니라 다른 모든 캐릭터 세트에도 적용됩니다.필요에 맞게 수정해야 할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/13234433/utf8-garbled-when-importing-into-mysql

반응형