데이터베이스 저장소의 문자 인코딩 문제 디코딩
이전 웹사이트의 데이터를 새 스크립트로 마이그레이션할 때 당황스러운 상황이 발생합니다. 원래 이전 스크립트에서 올바르게 렌더링된 저장된 문자가 새 스크립트에서는 왜곡되어 나타납니다. 조사 결과 문자가 특이한 인코딩으로 저장되어 있는 것으로 밝혀졌습니다.
기존 스크립트는 TUBADBENGINE이라는 데이터베이스 엔진을 사용하는데, 이는 특별한 특성을 나타내지 않습니다. 그러나 이전 스크립트를 사용하여 페르시아어 문자가 포함된 데이터를 삽입하면 데이터베이스에 이상한 문자로 저장됩니다.
반면, SQL을 사용하여 데이터베이스에 직접 데이터를 입력하는 경우, 올바른 문자가 유지됩니다. 그러나 새 스크립트를 사용하여 이 데이터를 검색하려고 시도하면 문자가 왜곡됩니다.
답변에서 밝혀진 것처럼 원인은 데이터베이스 연결에 사용되는 문자 인코딩입니다. 이 경우 데이터베이스 연결은 latin1로 설정되었으며 이는 페르시아어 문자에 적합하지 않은 선택입니다. 그 결과 데이터베이스에 저장할 때 문자가 잘못 변환되었습니다.
이 문제를 해결하려면 데이터베이스의 데이터를 올바른 문자 인코딩으로 변환해야 합니다. 답변에 제공되는 가능한 솔루션 중 하나는 다음과 같습니다.
SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
이 쿼리는 올바른 문자 인코딩을 사용하여 데이터를 검색하는 데 사용할 수 있습니다. . 그런 다음 이 결과를 UPDATE 문으로 사용하여 데이터베이스의 데이터를 영구적으로 수정할 수 있습니다.
데이터가 올바르게 인코딩되면 새 스크립트가 이를 올바르게 검색하고 표시할 수 있어야 합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3