반응형
utf8mb4를 사용한 MariaDB 오류
데이터베이스를 작성하려고 합니다.utf8mb4
문자 집합 및utf8mb4_unicode_ci
대조.그러나 유니코드 문자를 테이블에 삽입할 수 없는 것 같습니다.
내가 한 일:
SET NAMES utf8mb4;
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydb;
CREATE TABLE test (val VARCHAR(16));
INSERT INTO test (val) VALUES ("á");
ERROR 1366 (22007): Incorrect string value: '\xA0' for column `mydb`.`test`.`val` at row 1
사용하지 않으면SET NAMES utf8mb4;
를 삽입할 수 있습니다."á"
문제없는 캐릭터.
기본 문자 집합 변수는 다음과 같습니다.
show variables like 'char%'; show variables like 'collation%';
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | cp850 |
| character_set_connection | cp850 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | cp850 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MariaDB 10.5\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.000 sec)
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | cp850_general_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8_general_ci |
+----------------------+--------------------+
3 rows in set (0.000 sec)
그리고 사용 후SET NAMES
:
show variables like 'char%'; show variables like 'collation%';
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MariaDB 10.5\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.000 sec)
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8mb4_general_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8_general_ci |
+----------------------+--------------------+
3 rows in set (0.000 sec)
이 문제를 해결하려면 어떻게 해야 하나요?utf8mb4
문자 집합?
텍스트(또는 .sql) 파일 자체는 utf-8이 아닌 cp850으로 인코딩되어 있습니다.
부호화된 값이 1바이트임을 알 수 있습니다.UTF-8 부호화는 2바이트 이상이어야 합니다.
사용하기 위해서SET NAMES utf8mb4;
명령어, 파일을 utf-8로 변환해야 합니다.일부 고급 에디터에서는 이를 허용하고 있으며 최신 버전에서는 Windows 메모장도 텍스트 파일을 utf-8로 저장할 수 있습니다.
Windows 를 사용하고 있는 경우cmd
명령어 "chcp"는 "코드 페이지"를 제어합니다.chcp 65001은 utf8을 제공하지만 특별한 문자 집합도 설치해야 합니다.콘솔 창에서 글꼴을 설정하려면:창의 제목을 마우스 오른쪽 버튼으로 클릭합니다. → 속성 → 글꼴 → Lucida Console 선택
언급URL : https://stackoverflow.com/questions/68082339/mariadb-errors-using-utf8mb4
반응형
'programing' 카테고리의 다른 글
DBeaver를 사용하여 MariaDB에 연결할 수 없습니다. (0) | 2022.10.20 |
---|---|
함수 호출에서 옵션 인수를 건너뛰려면 어떻게 해야 합니까? (0) | 2022.10.20 |
Java 부울 getters "is" vs "are" (0) | 2022.10.20 |
"테이블 메타데이터 잠금 대기" 상태의 원인이 되고 있는 트랜잭션을 확인하려면 어떻게 해야 합니까? (0) | 2022.10.11 |
MySQL 테이블에 행이 있는지 테스트하는 가장 좋은 방법 (0) | 2022.10.11 |