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
.
예
으아악아주 분명한 것을 놓치고 있는 것 같지만 코딩에 대해서는 아는 바가 거의 없습니다.
미리 감사드립니다.
çã
을 기대하시나요?
문제는 해결하기 쉽습니다. inserting
텍스트를 입력하면 mysql이 latin1에서 utf8로 변환됩니다. 하지만 클라이언트가 latin1을 사용하고 있음을 알려주어야 합니다. 이는 mysql에 연결하는 동안 수행될 수 있으며 현재 기본값은 utf8, utf-8 또는 utf8mb4일 수 있습니다. 약간
위 내용은 Go 드라이버를 사용하여 삽입할 때 MySQL 인코딩 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!