Foros del Web » Programando para Internet » PHP »

Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Estas en el tema de Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH) en el foro de PHP en Foros del Web. Hola a todos Sé que se ha hablado ya mucho de este tema de acentos y ñ, yo también he preguntado varias veces y he ...
  #1 (permalink)  
Antiguo 28/03/2009, 13:57
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Hola a todos

Sé que se ha hablado ya mucho de este tema de acentos y ñ, yo también he preguntado varias veces y he podido salir del paso, pero cuando hago otra Web... vuelven los problemas o aparecen nuevos.

Hace poco tuve un problema muy raro con la codificación con que se guardaba el fichero, por suerte "David el Grande" me pudo ayudar indicándome que guardara el fichero como UTF-8 sin BOM con el NotePad++.

Por eso quiero escribir este post para consultar lo siguiente...

¿CUAL ES LA CONFIGURACIÓN OPTIMA DE CODIFICACION DE CARACTERES PARA PHP, MySQL, JavaScript, FORMS HTML, XML (para mostrarlos en Flash) Y los fichero .php???


Cada vez que hago una web compleja encuentro con varios problemas con los acentos y las ñ, al mezclar todo esto junto, y podía pasarme cosas como:
- php y mySQL ok, pero alerts('$texto_a_mostrar') con JavaScript se ven caracteres raros.
- en html y php se ve todo ok, pero al entrar por phpMyAdmin, se ven los caracteres raros.
- llenas el formulario en html, en MySQL se guarda bien, pero al editar a mano desde phpMyAdmin, se muestra mal, estando todos en utf-8.
- al grabar texto en un XML no me lo muestra en Flash.
- y así muchas cosas más...


Los lugares donde se puede configurar las codificaciones (las que conozco y nunca se cual utilizar) son:

MySQL -> utf8_general_ci, utf8_spanish_ci, utf8_unicoide_ci, latin1_general_ci, latin1_general_cs, latin1_spanish_ci.

PHP -> las funciones utf8_encode() y utf8_decode()

HTML y XML -> charset=utf-8 y charset=ISO-8859-1

FICHERO (mediante Notepad++) -> ANSI, UTF-8 sin BOM, UTF-8, UCS-2 Big Endian y UCS-2 Little Endian (por defecto están en ANSI)
* sobre esto no se si hay funciones php para hacerlo.

FLASH -> de esto no se que codificación debe tener los ficheros XML que edito desde PHP para que puedan ser leídos desde Flash



Pues eso, quien me puede decir cual es la combinación que nunca falla para poder hacer:
- ingresar los textos por un formulario que los guarda en BBDD
- se muestren en "html" (utilizando php obviamente)
- se pueden editar desde otro formulario (intranet)
- se puedan editar directamente desde phpMyAdmin
- mostrar correctamente dentro de alerts de JavaScript

En conclusión, el Pack Completo...!!!

Muchas gracias como siempre... ya que no se que sería mi vida sin este magnifico foro...!!!

Saludos

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #2 (permalink)  
Antiguo 28/03/2009, 15:21
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

De hecho debería haber un "post-it" en la sección general con este problema global y la forma de configurar todo correctamente.
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #3 (permalink)  
Antiguo 28/03/2009, 15:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Cita:
MySQL -> utf8_general_ci, utf8_spanish_ci, utf8_unicoide_ci, latin1_general_ci, latin1_general_cs, latin1_spanish_ci.
Aqui hay un excelente articulo que te explica las diferencias entre los COLLATION en MySQL:
http://www.stan.com.mx/topics/view/12
  #4 (permalink)  
Antiguo 28/03/2009, 16:24
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Cita:
Aqui hay un excelente articulo que te explica las diferencias entre los COLLATION en MySQL:
http://www.stan.com.mx/topics/view/12
Buen dato... lo malo es que me ralló más de lo que estaba... jajaja no mentira, la conclusión que saco de esto es que:

- utf8 es más completo que latin1, por lo tanto mejor utf8
- utf8_general_ci, no distingue entre n - ñ comparándolo con utf8_spanish_ci, pero ambos no distinguen a - á, por lo tanto mejor utf8_spanish_ci,
- utf8_spanish_ci no considera la ch ni la ll como "una letra", utf8_spanish2 si, por lo tanto mejor utf8_spanish2_ci


Hasta aquí bien...

Pero cuando compara utf8_general_ci con utf8_bin (SELECT 'a' = 'á' COLLATE utf8_bin; -- 0), el utf8_bin distingue entre a - á y todas las demás, pero no utf8_spanish2_ci

Entonces... ¿es siempre mejor codificar mi BBDD y los campo txt con utf8_bin?

Ahora falta el resto de cosas que "combine" bien con utf8_bin...

Saludos

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #5 (permalink)  
Antiguo 28/03/2009, 16:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Cita:
Entonces... ¿es siempre mejor codificar mi BBDD y los campo txt con utf8_bin?
Yo uso utf8_spanish_ci para cuando tenga que hacer una búsqueda en la tabla, esta sea insensible a los caracteres con tildes.
  #6 (permalink)  
Antiguo 18/04/2009, 11:19
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Alguien más me puede decir algo sobre el resto: HTML, PHP, JS... etc.

Gracias

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #7 (permalink)  
Antiguo 18/04/2009, 19:36
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

De mysql ya está claro, utf-8 y el tipo es cosa tuya.

De php depende, si abres la pagina directamente depende del tipo de codificacion que especifiques o en el header o en el meta(que deberia ser la misma), si es un include depende del fichero (en esta misma pagina /f18/codificacion-includes-690678/)

De html y xml para mi lo ideal es utf 8 el ISO seria en todo caso 8859-15 que admite el euro pero recuerda que debe ser siempre la misma codificacion.

El fichero pues la misma codificacion, yo te aconsejo utf 8.

Resumiendo, te aconsejo utf 8 para todo, recuerda que tienen que coincidir.

En flash no tengo ni idea
  #8 (permalink)  
Antiguo 18/04/2009, 21:46
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

http://www.forosdelweb.com/f86/no-puedo-creer-685618/
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #9 (permalink)  
Antiguo 19/04/2009, 04:46
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Gracias por el aporte, solo falta que alguien opine sobre JS, FLash y XML

Cuando recoja toda la información, haré una web simple combinando todo a ver si funciona.

Saludos

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #10 (permalink)  
Antiguo 19/04/2009, 04:55
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

De xml ya te lo dije yo más arriba
  #11 (permalink)  
Antiguo 19/04/2009, 05:11
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

ups, no me di cuenta

pero igual sería interesante que alguien que sepa flash escriba sobre el tema, ya que (según tengo entendido) la única forma de modificar el texto de una animación en flash es leyendo los textos desde un XML externo.

Sería algo así:

MySQL --> PHP --> XML --> FLASH

es decir, los datos están en MySql, los extraigo con PHP y edito el XML, el cual es utilizado por el SWF para mostrar los textos.

Saludos

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #12 (permalink)  
Antiguo 19/04/2009, 05:20
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Con json tambien se puede (busca en google y es el 4º resultado, no puedo poner links) y habrá más formas, digo yo...
  #13 (permalink)  
Antiguo 29/05/2009, 02:16
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

Hola a todos,

sabía que me iba a volver a pasar.. y efectivamente me pasó...

En la nueva Web que estoy haciendo, tengo TODO en utf8 y los acentos me salen con el carácter "�"

Así que retomé este hilo y entré a http://www.stan.com.mx/topics/view/12 y se me ocurrió ver los comentarios que pone la gente y encontré que para cambiar las variables "character_set" de MySQL a utf8, realice la siguiente consulta: SET NAMES 'utf8'.

Así que en mi php hago esa consulta y voilá... los acentos se ven perfecto...!!!

Creo que con PHP, MySQL, HTML/XML ya está.... solo falta JS y FLASH

Saludos

Carlos
__________________
=================
Chiqui nunca muere ! ! !
  #14 (permalink)  
Antiguo 30/05/2009, 05:31
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: Codificación de caracteres (PHP/JS/MySQL/HTML/FICHEROS/XML/FLASH)

SOLUCIONADO TEMA DE ALERT()'S CON JAVASCRIPT

Como me lo temía... me volvió a pasar con los alert()'s en Javascript que me ponía los caracteres "�" en vez de los acentos y signos de interrogación "¿"

Para solucionarlo lo que hice fue abrir el fichero con las funciones de js "funciones.js" con el NotePad++ y en Formato convertirlo a "UTF-8 sin DOM" porque estaba en "ANSI" y eso es todo.

Ya está casi todo, solo falta 2 cosas...

1.- confirmar que funciona mi intranet para modificar los campos en la BBDD, y que se siga viendo bien el la WEB
2.- codificación en FLASH con XML externos y que PHP los escriba bien tirando de BBDD.

Gracias.

Carlos
__________________
=================
Chiqui nunca muere ! ! !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:49.