programing

utf8mb4를 사용하는 경우에도 테이블에 Go-buff-driver 문자열을 삽입하면 1336 오류가 발생합니다.

copyandpastes 2023. 7. 25. 23:20
반응형

utf8mb4를 사용하는 경우에도 테이블에 Go-buff-driver 문자열을 삽입하면 1336 오류가 발생합니다.

오류 메시지:

Error 1366: Incorrect string value: '\xA7test for column `mycolumn` at row 1

db 연결 코드:

db, err := sql.Open("mysql", "username:pass@tcp(127.0.0.1:3306)/mydb?charset=utf8mb4")

나는 달리기를 시도했습니다.

SELECT
    `tables`.`TABLE_NAME`,
    `collations`.`character_set_name`
FROM
    `information_schema`.`TABLES` AS `tables`,
    `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
        `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;

그리고 이것을 얻었습니다.

---------------------
| mytable | utf8mb4 |
---------------------

삽입하려는 문자열:§test

utf8mb4 인코딩으로 MariaDB 잘못된 문자열 오류 등을 살펴보았지만, 제가 본 모든 내용은 colation을 utf8mb4로 설정하고 charset을 utf8mb4로 설정하라고 되어 있습니다.

값은 다음과 같아야 합니다.\xC2\xA7test.\xA7utf8(mb4)에 올바른 매핑이 없습니다.

select hex('§test')

C2A774657374

참조: 피들

언급URL : https://stackoverflow.com/questions/73683361/go-mysql-driver-insert-string-into-table-gives-error-1336-even-using-utf8mb4

반응형