집 >데이터 베이스 >MySQL 튜토리얼 >내 페르시아어 문자가 이전 웹사이트 스크립트와 새 웹사이트 스크립트 간에 다르게 표시되는 이유는 무엇입니까?
데이터 저장 및 검색 시 이상한 문자 인코딩 불일치
페르시아어 문자를 활용하는 오래된 웹사이트를 다시 작성하려는 노력 중에 귀하는 다음과 같은 문제에 직면했습니다. 데이터가 저장되고 검색되는 방식 사이의 이상한 불일치. 이전 스크립트는 페르시아어 문자를 올바르게 표시하지만 새 스크립트는 왜곡된 것처럼 보이는 데이터베이스와 동일한 인코딩으로 표시합니다.
이 문제를 이해하려면 다음 사항에 유의하는 것이 중요합니다.
이전 스크립트를 사용하여 페르시아어 문자를 입력하면 데이터베이스에 زمران와 같은 이상한 시퀀스로 나타납니다. 그러나 이전 스크립트는 이를 올바르게 검색하고 표시합니다. 이는 TUBADBENGINE이 ISO-8859-1을 기반으로 하는 별도의 인코딩 체계를 사용하고 있음을 의미하며, 이는 새 스크립트에서 인식되지 않습니다.
반대로, 페르시아어 문자를 데이터베이스에 직접 삽입하면 해당 문자가 저장됩니다. 예상대로 새 스크립트에 의해 올바르게 검색되었습니다. 그러나 이전 스크립트에서는 이제 이를 물음표(????)로 표시합니다. 이는 이전 스크립트의 문자 디코딩 메커니즘이 데이터베이스에서 직접 삽입에 사용되는 것과 다른 인코딩을 예상하기 때문입니다.
해결책은 데이터베이스의 기존 데이터를 TUBADBENGINE에서 사용하는 인코딩에서 UTF로 변환하는 것입니다. CodeIgniter에서는 -8 인코딩이 필요합니다. 이를 수행하려면
UPDATE tnewsgroups SET fName = CONVERT(INARY CONVERT(fName USING latin1) USING utf8);
데이터가 변환되면 새 스크립트와 기존 스크립트 모두 페르시아어 문자를 올바르게 표시해야 합니다.
위 내용은 내 페르시아어 문자가 이전 웹사이트 스크립트와 새 웹사이트 스크립트 간에 다르게 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!