programing

MySQL의 ANSI 드라이버와 유니코드 드라이버의 차이

goodsources 2023. 9. 28. 08:21
반응형

MySQL의 ANSI 드라이버와 유니코드 드라이버의 차이

Windows의 ODBC(64비트)에서 데이터 소스를 선택하면 MySQL Database의 두 가지 옵션을 사용할 수 있습니다.

  • MySQL ODBC 5.3 ANSI 드라이버
  • MySQL ODBC 5.3 유니코드 드라이버

이 둘의 차이점은 무엇입니까?

먼저 MySQL을 사용하지 않지만 ODBC Drivers에 대해서는 알고 있습니다.ODBC에는 유니코드와 안시에 대한 다른 API가 있습니다.ansi API는 A로 끝나고 유니코드 API는 W로 끝납니다(예: SQLPrepareA 및 SQLPrepareW).ansi API는 문자열에 대한 바이트/옥텟을 허용하므로 chrs 0-255만 처리할 수 있습니다.유니코드 API는 2바이트 UCS-2 인코딩된 유니코드 코드 포인트인 SQLWCHAR를 허용합니다(새로운 MS SQL Server 버전은 UTF16 인코딩 문자열을 처리할 수 있음). 따라서 유니코드의 처음 65000 코드 포인트를 처리할 수 있습니다.

유니코드 데이터를 저장해야 한다면 어떤 드라이버를 사용할지 선택할 수 없습니다.

저는 Carnangel이 보낸 속도에 대한 의견이 유니코드 드라이버를 사용하는 것을 지연시키지 않을 것이고 어떤 경우에도 그의 의견에는 어떤 사실도 포함되어 있지 않습니다.그의 뜻은 다음과 같습니다.

유니코드 데이터를 MySQL에 저장하면 UTF-8이 인코딩되어 네트워크를 통해 UTF-8로 전송됩니다. 클라이언트 측에서는 ODBC 드라이버가 UTF-8 인코딩 데이터를 UCS-2로 변환해야 합니다.분명히 그 반대입니다.

유니코드 ODBC 드라이버로 ANSI ODBC 응용 프로그램(안시 ODBC apis를 사용하는 응용 프로그램)을 작성하는 경우 ODBC 드라이버 관리자는 드라이버를 UCS-2로 변환하고 드라이버에 전달한 8비트 데이터를 UCS-2로 변환해야 합니다. 따라서 그렇게 하지 마십시오.

요즘에도 ANSI ODBC 드라이버를 사용하는 사람이 있다면 놀랄 것입니다.

아시다시피, 데이터 문자 타입에는 Ansi와 Unicode가 적용됩니다.프로세서의 문제가 아닌 하나를 선택할 수 있습니다. 이 둘의 차이점은 다음과 같습니다. - 유니코드를 사용하면 모든 문자 속성을 활성화할 수 있지만 원시 속도 처리를 줄일 수 있습니다. - Ansi, 반대의 문자 유형이지만 원시 속도 처리를 하면 속도가 빨라집니다.

처음 사용하는 사용자라면 유니코드를 선택하고, 그렇지 않다면 Ansi를 선택할 수 있습니다.

요점을 이해하셨으면 좋겠습니다 ;)

언급URL : https://stackoverflow.com/questions/25889046/difference-between-ansi-and-unicode-drivers-of-mysql

반응형