인코딩 불일치:
PHP와 MySQL 인코딩 설정 간의 불일치로 인해 UTF-8 테이블에 발음 구별 문자가 잘못 저장됩니다. 새로운 삽입은 이제 정확하지만 이전 행에는 여전히 손상된 문자가 포함되어 있습니다.
수정 조치:
이 문제를 해결하려면 MySQL의 변환() 함수를 활용하십시오.
<code class="sql">convert(cast(convert(name using latin1) as binary) using utf8)</code>
이 함수는 Latin1로 인코딩된 데이터를 UTF-8로 변환합니다. 이중 변환을 사용하면 변환 프로세스 중에 데이터가 잘리지 않습니다.
사용 예:
코드에서 업데이트 쿼리 내에 변환을 적용합니다.
<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>
이렇게 하면 테이블의 이름 열이 올바르게 변환된 UTF-8 문자로 업데이트됩니다.
참고:
데이터 변경에 따라 다름 인코딩 변환 중에 쿼리에서 내부 변환 기능을 생략해야 할 수도 있습니다. 두 시나리오를 모두 테스트하고 원하는 결과를 얻는 시나리오를 채택하세요.
위 내용은 MySQL 데이터베이스에서 Latin1 문자를 UTF-8로 올바르게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!