>백엔드 개발 >Golang >Postgres에서 선택한 후 잘못된 UTF8 문자

Postgres에서 선택한 후 잘못된 UTF8 문자

WBOY
WBOY앞으로
2024-02-12 19:48:091220검색

从 postgres 选择后 UTF8 字符不正确

PHP 편집기 Apple에서는 Postgres 데이터베이스를 사용할 때 선택 후 잘못된 UTF8 문자 문제가 발생하는 경우가 있습니다. 이 경우 데이터베이스에 저장된 특수 문자가 왜곡되거나 잘못된 문자로 나타날 수 있습니다. 이 문제에 대한 해결책은 데이터베이스 및 연결 문자 집합을 올바르게 설정하여 문자가 올바르게 표시되도록 하는 것입니다. postgres 데이터베이스를 사용할 때 구성 파일을 수정하거나 데이터베이스에 연결할 때 문자 집합을 설정하면 이 문제를 해결할 수 있습니다. 문자 집합을 올바르게 설정하면 다양한 문자를 올바르게 처리하고 표시할 수 있으며 데이터베이스의 안정성과 신뢰성이 향상됩니다.

질문 내용

포스트그레스에 이메일 주소가 포함된 데이터베이스 테이블이 있습니다. 고객 중 한 명의 이메일 주소에 움라우트(ü)가 있습니다. 이것은 문제가 되지 않지만 Go의 문자열에 잘못된 바이트 시퀀스(c3bc 대신 e3bc)가 포함되어 있어 나중에 많은 문제가 발생했습니다.

client_encoding=utf8을 사용하여 데이터베이스에 연결하고 있으며 데이터베이스는 utf8로 설정되어 있습니다. 다음 명령을 실행하면 데이터베이스의 바이트 순서가 예상한 대로임을 확인할 수 있습니다.

으아악

(나머지 데이터는 숨겨져 있습니다)

저는 데이터를 읽기 위해 데이터베이스/sql 패키지와 postgres 드라이버를 사용하고 있는데, go에서 문자열을 인쇄하면 예상했던 것과는 다른 xxxxxxe3bcxxxxxx를 얻게 됩니다(다시 말하지만 나머지 이메일은 x로 숨깁니다). ).

이건 버그인가요, 아니면 제가 뭔가 잘못 이해한건가요?

해결 방법

데이터베이스가 UTF8로 올바르게 설정되어 있는지 확인하세요. 데이터베이스를 생성할 때 LOWER 等 sql 函数出现问题。使用 pg_dropclusterpg_createcluster --encoding=UTF8에서 데이터베이스를 다시 생성할 수 있는 로캘이 수정되었습니다.

위 내용은 Postgres에서 선택한 후 잘못된 UTF8 문자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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