mysql - endian - que hace unicode
Diferencia entre los controladores ANSI y Unicode de MySQL (2)
Al elegir el Origen de datos en ODBC (64 bits) en Windows, tengo dos opciones disponibles de la base de datos MySQL:
- Controlador ANSI MySQL ODBC 5.3
- MySQL ODBC 5.3 Unicode Driver
¿Cuáles son las diferencias entre estos dos?
Como sabrá, Ansi y Unicode se aplican al tipo de carácter de datos. Puede elegir uno u otro, no es una cuestión de procesador. Aquí está la diferencia entre ellos: - Unicode le permite tener todas las propiedades de los caracteres habilitadas pero reduciendo el tratamiento de la velocidad bruta - Ansi, lo opuesto, menos tipo de carácter pero velocidad bruta el tratamiento se acelerará
Si eres un nuevo usuario toma el Unicode, si no, puedes elegir el Ansi.
Espero que tengas el punto;)
En primer lugar, debo decir que no uso MySQL pero sí conozco los controladores ODBC. En ODBC hay diferentes API para unicode y ansi. Las API de ansi terminan en A y las API de Unicode terminan en W (por ejemplo, SQLPrepareA y SQLPrepareW). Las API de ansi aceptan bytes / octetos para cadenas de caracteres y, por lo tanto, solo pueden manejar los chrs 0-255. Las API de Unicode aceptan SQLWCHAR que son puntos de código Unicode codificados UCS-2 de 2 bytes (las versiones más nuevas de MS SQL Server pueden manejar cadenas codificadas en UTF16) y, por lo tanto, pueden manejar aproximadamente los primeros 65000 puntos de código en Unicode.
Por lo tanto, si necesita almacenar datos Unicode, no tiene otra opción qué controlador utilizar.
No dejaría que los comentarios sobre la velocidad de Carnangel lo desanime usando el controlador Unicode y, en cualquier caso, sus comentarios no incluyen ningún hecho. Él puede estar refiriéndose a:
Si almacena datos Unicode en MySQL, será codificado en UTF-8 y transferido a través de su red como UTF-8. En el extremo del cliente, el controlador ODBC tendrá que convertir los datos codificados en UTF-8 en UCS-2 ya que esto es lo que necesita ODBC. Obviamente se aplica lo contrario.
Si escribe una aplicación ODBC ANSI (que es una que utiliza las apis ODBC ansi) con un controlador ODBC Unicode, entonces el administrador del controlador ODBC tendrá que convertir el UCS-2, el controlador regresa a 8 bits (con pérdida) y convierte el 8 bits. Los datos que se pasan al controlador a UCS-2. Así que no hagas eso.
En estos días me sorprendería si alguien sigue utilizando los controladores ANSI ODBC.