>  기사  >  백엔드 개발  >  Go 드라이버를 사용하여 삽입할 때 MySQL 인코딩 문제

Go 드라이버를 사용하여 삽입할 때 MySQL 인코딩 문제

WBOY
WBOY앞으로
2024-02-09 16:00:10552검색

Go 드라이버를 사용하여 삽입할 때 MySQL 인코딩 문제

php 편집기 Yuzai는 Go 드라이버를 사용하여 삽입할 때 발생하는 MySQL 인코딩 문제에 대한 솔루션을 제공합니다. Go를 사용하여 MySQL 삽입 작업을 작성할 때 코딩 불일치가 발생하여 데이터 삽입이 왜곡되거나 삽입되지 않는 경우가 있습니다. 이 기사에서는 이 문제를 해결하고 데이터 삽입 작업을 보다 원활하게 만드는 방법을 자세히 소개합니다.

질문 내용

latin1_swedish_ci로 인코딩된 테이블에 utf-8 텍스트를 저장하려고 합니다. 데이터베이스에 직접 액세스할 수 없기 때문에 인코딩을 변경할 수 없습니다. 그래서 인코더를 제공하는 이 go 라이브러리를 사용하여 텍스트를 latin-1로 인코딩하려고 합니다. 이 라이브러리에는 오류를 반환하는 대신 잘못된 문자를 대체하도록 인코더를 래핑하는 기능이 있습니다.

그러나 행을 삽입하려고 하면 mysql에서 error 1366:第 1 行 "설명" 열의 문자열 값이 잘못되었습니다: "\xe7\xe3o pa..."라고 불평합니다.

같은 텍스트를 파일에 써봤는데 file -i 报告此 file.txt: application/octet-stream;字符集=binary.

으아악

아주 분명한 것을 놓치고 있는 것 같지만 코딩에 대해서는 아는 바가 거의 없습니다.

미리 감사드립니다.

Solution

çã을 기대하시나요?

문제는 해결하기 쉽습니다. inserting 텍스트를 입력하면 mysql이 latin1에서 utf8로 변환됩니다. 하지만 클라이언트가 latin1을 사용하고 있음을 알려주어야 합니다. 이는 mysql에 연결하는 동안 수행될 수 있으며 현재 기본값은 utf8, utf-8 또는 utf8mb4일 수 있습니다. 약간

으아악

위 내용은 Go 드라이버를 사용하여 삽입할 때 MySQL 인코딩 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제