MySQL 테이블에 UTF8로 저장된 Latin1 문자 수정
삽입 중에 Latin1 데이터를 UTF8로 잘못 변환하여 문제가 발생합니다. 올바른 문자 집합을 설정했음에도 불구하고 오래된 데이터는 잘못된 문자로 인해 손상된 상태로 남아 있습니다. 이 상황을 해결하려면 영향을 받은 데이터를 올바른 UTF8 표현으로 변환해야 합니다.
권장되는 해결 방법은 MySQL 함수를 활용하는 것입니다.
convert(cast(convert(name using latin1) as binary) using utf8)
이 함수는 이름 열 데이터를 사용합니다. 이를 Latin1 바이너리로 해석한 다음 UTF8로 변환합니다. 바이너리로의 외부 변환은 데이터가 원시 데이터로 처리되도록 보장하여 추가 문자 집합 변환으로 인해 데이터가 손상되는 것을 방지합니다.
다음은 예제 쿼리입니다.
UPDATE `table` SET `name` = convert(cast(convert(name using latin1) as binary) using utf8) WHERE `name` LIKE '%[non-UTF8 characters]%'
이 쿼리는 다음이 아닌 모든 행을 업데이트합니다. - 이름 열의 UTF8 문자는 데이터가 올바르게 변환되도록 합니다.
참고: 원래 인코딩이 프로세스가 데이터를 약간 변경한 경우 변환 함수 호출에서 Latin1 바이너리로의 내부 변환을 생략해야 할 수도 있습니다.
위 내용은 MySQL에 UTF8로 잘못 저장된 Latin1 문자를 어떻게 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!