>백엔드 개발 >PHP 튜토리얼 >데이터베이스 마이그레이션 후 내 페르시아어 문자가 왜곡되는 이유는 무엇입니까?

데이터베이스 마이그레이션 후 내 페르시아어 문자가 왜곡되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 11:48:12923검색

Why Are My Persian Characters Garbled After Database Migration?

데이터베이스 저장소의 디코딩 문자 인코딩 문제

이전 웹사이트의 데이터를 새 스크립트로 마이그레이션할 때 당황스러운 상황이 발생합니다. 원래 이전 스크립트에서 올바르게 렌더링된 저장된 문자가 새 스크립트에서는 왜곡되어 나타납니다. 조사 결과 문자가 특이한 인코딩으로 저장되어 있는 것으로 밝혀졌습니다.

기존 스크립트는 TUBADBENGINE이라는 데이터베이스 엔진을 사용하는데, 이는 특별한 특성을 나타내지 않습니다. 그런데 페르시아 문자가 포함된 데이터를 기존 스크립트를 사용하여 삽입하면 데이터베이스에 이상한 문자로 저장됩니다.

반면, SQL을 사용하여 데이터베이스에 직접 데이터를 입력하면, 올바른 문자가 유지됩니다. 그러나 새 스크립트를 사용하여 이 데이터를 검색하려고 시도하면 문자가 왜곡되는 결과가 발생합니다.

답변에서 밝혀진 것처럼 원인은 데이터베이스 연결에 사용되는 문자 인코딩입니다. 이 경우 데이터베이스 연결은 latin1로 설정되었으며 이는 페르시아어 문자에 적합하지 않은 선택입니다. 그 결과 데이터베이스에 저장할 때 문자가 잘못 변환되었습니다.

문제를 해결하려면 데이터베이스의 데이터를 올바른 문자 인코딩으로 변환해야 합니다. 답변에 제공되는 한 가지 가능한 해결책은 다음과 같습니다.

SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name

이 쿼리를 사용하면 올바른 문자 인코딩을 사용하여 데이터를 검색할 수 있습니다. 그런 다음 이 결과를 UPDATE 문으로 사용하여 데이터베이스의 데이터를 영구적으로 수정할 수 있습니다.

데이터가 올바르게 인코딩되면 새 스크립트가 이를 올바르게 검색하고 표시할 수 있어야 합니다.

위 내용은 데이터베이스 마이그레이션 후 내 페르시아어 문자가 왜곡되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.