2010-04-22 6 views
7

qué base de datos se debe utilizar, si mi aplicación va a estar en varios idiomas (incluido el chino, japonés, etc.)? En otras palabras, ¿MySQL es mejor o peor que Postgres para manejar unicode, etc.? (Estos son los únicos dos bases de datos de mi empresa de alojamiento ha)¿Qué base de datos e idioma es mejor para manejar Unicode?

Además, el idioma que es mejor para el manejo de Unicode? PHP o Ruby/Rails?

+1

Creo que se debe crear una pregunta separada para el idioma. –

+0

Me gusta cuando la gente comienza a aprender nuevos lenguajes de programación porque su proveedor de hosting los tiene instalados. – newtover

Respuesta

7

Mysql no tiene soporte completo para Unicode (por ejemplo: los caracteres chinos fuera del BMP) (see). Se utiliza un lisiado 'utf8' codificación (en realidad no UTF-8).

Postgresql parece tener soporte completo para UTF-8 encoding (por lo tanto, para todos los caracteres Unicode).

+3

Totalmente cierto. MySQL almacena de 1 a 3 bytes y PostgreSQL de 1 a 4 bytes por char UTF-8. Ir a PostgreSQL. – BalusC

1

Bases de datos:

En mi experiencia, tanto MySQL y Postgres manejados Unicode bastante bien.

Idiomas:

  • PHP < = 5,3 se limita en cierta medida en lo que se refiere a Unicode, mientras que las próximas PHP 6 promesas de arreglar eso.
  • Rubí 1.8 tenía mala soporte Unicode, pero 1.9 se dice que manejar muy bien Unicode (no tengo experiencia propia allí).

Restricciones de PHP 5.3:

Es posible utilizar PHP 5 junto con Unicode, pero entonces uno tiene que tener cuidado con cuerdas. Muchas funciones de cadena, por ejemplo, la que cuenta la longitud de los caracteres, devuelve el número de bytes, no el número de caracteres. Sin embargo, hay funciones adicionales disponibles que devuelven el número de caracteres.

Si este es un nuevo proyecto que debe ser capaz de utilizar las funciones desde el principio.

Para nuestro proyecto PHP existente, decidí dejarlo donde estaba (Windows 1252), debido a que es un proyecto interno y un valor limitado para Unicode (por desgracia, que realmente me gusta Unicode).

+0

Si el controlador de DB no es compatible con Unicode, puede leer y escribir matrices de bytes en bruto y convertirlos en cadenas utilizando la codificación deseada. –

0

En mis casos Postgresql era mejor que MySQL, MySQL no soporta completamente Unicode

+0

Eso ya fue respondido. Recordamos la respuesta que está totalmente de acuerdo en lugar de volver a publicarla una vez más. – BalusC

-1

PostgreSQL + PHP6 es buena opción

+0

PHP6? ¿Dónde? ¿No ramificaron las cosas de utf16 y lanzaron un reinicio hace unos meses? :-) –

Cuestiones relacionadas