PDO_ODBC, 특히 비표준 PDO_ODBC를 통해 PHP ODBC를 사용하여 Access 데이터베이스에서 데이터를 검색하려고 할 때 문자를 올바르게 가져오지 못할 수 있으며 특수 문자 대신 물음표가 표시되는 등의 문제가 발생할 수 있습니다.
이 문제는 데이터베이스가 유니코드로 데이터를 저장할 수 있음에도 불구하고 Access ODBC 드라이버가 UTF-8 형식으로 데이터를 전송하지 않는다는 사실에서 발생합니다. 결과적으로 ODBC 드라이버가 텍스트를 반환할 때 비표준 형식(종종 Windows-1252)으로 인코딩됩니다. 이 인코딩은 UTF-8과 완전히 호환되지 않으므로 브라우저 및 PHP에서 표시 문제가 발생합니다.
이 문제를 해결하기 위한 몇 가지 일반적인 시도에는 mb_convert_encoding()을 사용하여 Windows에서 변환하는 것이 포함됩니다. -1252에서 UTF-8로. 그러나 Windows-1252 외부 문자가 여전히 잘못 표시될 수 있으므로 이 접근 방식은 문제를 완전히 해결하지 못합니다.
문제를 완전히 해결하고 UTF-8 데이터를 효과적으로 처리하려면, ADODB 연결 및 레코드 집합 개체와 함께 COM을 사용해야 합니다. COM(구성 요소 개체 모델) 및 ADODB(ActiveX 데이터 개체)를 사용하면 Access 데이터베이스와 직접 상호 작용할 수 있으며 UTF-8 데이터를 적절하게 처리할 수 있습니다.
COM 개체를 만들고 코드 페이지를 UTF-로 설정하면 8 CP_UTF8을 사용하면 올바른 언어 인코딩으로 데이터베이스 연결을 설정할 수 있습니다. 그런 다음 ADODB Recordset 개체를 사용하여 데이터베이스에서 데이터를 검색하여 문자가 원래 형식으로 유지되고 브라우저와 PHP 모두에서 올바르게 표시되도록 할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3