PDA

Ver la Versión Completa : Caracteres para español


Faust
25-09-2008, 19:40:54
Saludos...

Mi pregunta es que conjunto de caracteres debo usar para mis bases de datos en español, ya saben para que se vea la "ñ", caracteres acentuados etc. etc. en general los caracteres que se utilizan en español.

Planeo usar estos datos de MySQL en aplicaciones web con PHP y desde aplicaciones de escritorios creadas en Delphi, y saber si la visualización de estos caracteres desde un sitio web con PHP también depende de la versión de Apache, PHP o MySQL.

De antemano, gracias a todos por su ayuda.

xEsk
25-09-2008, 23:12:49
Con Latin1 o UTF-8, por ejemplo. Yo he usado los 2 tipos y me han funcionado a las mil maravillas! :)

Saludos

dec
25-09-2008, 23:21:57
Hola,

Yo procuro seguir estas "reglas":

1º El "collate" de la base de datos es UTF-8, y el de las tablas también

2º En el archivo ".htaccess" de Apache añado al principio "AddDefaultCharset utf-8"

3º Añado el "charset=utf-8" a la cabecera HTTP "Content-Type" y la envío

4º Hago lo propio con la meta etiqueta "Content Type" tanto en HTML como XML

5º Trabajo con archivos (código fuente) cuya codificación de caracteres es UTF-8

Y creo que no me quedo nada... :rolleyes:

Edito: Tal vez debería añadir que hablo de cuando trabajo con PHP, MySQL, Apache...

roman
26-09-2008, 04:56:07
Yo hago más o menos lo mismo que dec pero con latin1. Lo importante es ser consistente. Si tu archivo fuente está codificado en UTF8 y tu cabecera en iso-8859-1, si o sí se verán mal los acentos. Deben coincidir.

Otra cosa que hago es poner esta línea en los archivos php:


setlocale(LC_CTYPE, 'es_ES');


Sin esta línea -al menos con latin1- las transformaciones como strtoupper, no convierten los acentos.

Una pregunta a dec: Los puntos 2 y 3 ¿no pueden obviarse suponiendo que nunca se nos olvida el 4?

Así le hago yo y no he detectado problemas, pero quizá se me escapa algo.

// Saludos

dec
26-09-2008, 08:32:29
Hola,

El punto 2 igual ayuda con ciertos archivos, no sé, podría acaso obviarse, como dices, pero, el archivo ".htaccess" está ahí, y esa es una de las cuatro o cinco líneas que contiene: creo que no está mal, aunque, sinceramente, no sé su alcance verdadero.

El punto 3 no cuesta nada, quiero decir, se envía junto la cabecera "ContentType", que conviene enviar, o que yo suelo enviar, de modo que añadir a esta el "Charset" es natural, pero, te aseguras de que no añades cualquier por gusto, sino justo el que quieras usar.

Una cosa sí se me había olvidado y me parece que es importante: la primera consulta que hago a la base de datos, en realidad no es una consulta, también he visto hacerla en otros proyectos, y además creo que ayuda a evitar problemas. Se trata de:


SET NAMES utf-8


Como sabes Román uso una clase "MySQL" para trabajar con la base de datos, pues bien, en su constructor ya ejecuto dicha consulta SQL, antes de cualquier otra cosa, por lo tanto. De hecho sabes que Gesbit hace 12 consultas para conformar la portada de una bitácora, pues bien, una de esas consultas es la que se ve arriba, el "Set Names". :rolleyes:

Faust
29-09-2008, 06:59:59
Una disculpa, ya me había olvidado que había empezado este hilo...

Gracias por tan completa respuesta Dec... le agrego el consejo de Román...

Y en efecto, planeo trabajar Apache, MySQL y PHP, pero en algún momento tendré que añadir a esta combinación Adobe Flex... recién adquirido en mi oficina... muy bueno, se los recomiendo.