https://www.lesstif.com/dbms/mysql-rhel-centos-ubuntu-20775198.html
위 링크에서 알려주는 것은
cmd chcp이 949인데 chcp 65001로 변경하고 작업을 해야한다고 하네요.
cmd 자체에서 인코딩이 문제가 있을 수 있다는 내용이다. 실제로 한분은 이렇게 해결이 되었다.
mysqldump -u root -p --default-character-set utf8mb4 zerobase > backup.sql;
db글자 깨짐
오류 : mysqldump -u root -p zerobase > backup.sql;
해결 : mysqldump -u root -p zerobase -r backup.sql;
이상태에서는 굳이 아래와 같이 안해도 작동이 잘 되었다.
mysqldump -u root -p --default-character-set utf8mb4 zerobase -r backup.sql;
-r (또는 --raw) 옵션이 mysql 클라이언트가 결과를 출력할 때 특수 문자를 이스케이프하지 않도록 하는 옵션이기 때문입니다.
그러면 왜 -r 옵션을 사용하면 한글이 제대로 출력되는 것일까요? 이를 이해하려면, 먼저 mysql 클라이언트가 결과를 출력하는 방식을 알아야 합니다. mysql 클라이언트는 기본적으로 특수 문자를 이스케이프하여 출력합니다. 이는 데이터베이스의 내용을 안전하게 출력하기 위한 것인데, 이 과정에서 한글과 같은 멀티바이트 문자가 깨질 수 있습니다.
그런데 -r 옵션을 사용하면 mysql 클라이언트는 이러한 이스케이프를 하지 않고, 데이터를 원래의 형태 그대로 출력합니다. 따라서 -r 옵션을 사용하면 멀티바이트 문자가 깨지지 않고 제대로 출력됩니다.
그러므로, 기존에 한글이 깨지는 문제는 mysql 클라이언트가 결과를 출력하는 과정에서 한글 문자가 깨지는 것이었고, -r 옵션을 사용하면 이 문제를 해결할 수 있었습니다.
source backup.sql;