Programación en Internet

Blog de la asignatura de la titulación Ingeniero en Informática

El juego de caracteres, la pesadilla de los informáticos

| 18 Comments

El juego de caracteres (encoding, charset, Unicode, UTF-8, ISO-8859-1, etc.) es la pesadilla de los informáticos. Conozco a pocos informáticos que sepan realmente qué es el juego de caracteres, que sepan los diferentes juegos de caracteres que existen, y que sepan las implicaciones que supone usar uno u otro. Y lo más importante, ¡que sepan usarlo y reparar un desaguisado!

Tengo que reconocer que a mí me llevó un tiempo entenderlo (y seguro que no lo sé todo).

Hoy he corrido la Marca Running Series de Alicante. Y como veremos a continuación, los informáticos de Marca tienen graves problemas con el juego de caracteres y aplican soluciones muy chapuceras.

Me ha llegado un correo electrónico en el que sospechosamente mi apellido no lleva acento:

Ya lo sé, ya lo sé, 50 minutos 10 kilómetros no es un buen tiempo, pero corría con un amigo, era su primera carrera, y se ha hundido y le he tenido que esperar.

Me voy a la página para consultar la clasificación y me encuentro con este mensaje: “Recuerda que no debes introducir acentos y que se ha sustituido la ñ por n”. ¿Es una broma? (Por cierto, la carrera se ha celebrado hoy 4 de noviembre, no el 7 de octubre como se puede ver en la siguiente imagen, otro fallo)

No, no es una broma, si busco con mi apellido con acento, no aparezco y aparece otra vez un mensaje similar: “Por favor, recuerda que el sistema no admite ‘ñ’. Todas las ‘ñ’ se han cambiado automáticamente por ‘n’. Perdón por las molestias”.

¡Alucinante, incomprensible, ridículo!

Le sugiero a Marca y a sus informáticos que vean mis vídeos sobre el juego de caracteres, quizás aprendan algo y la próxima vez no serán chapuzas:

HTML: juego de caracteres:

 

HTML: el juego de caracteres y los editores de texto:

 

HTML: ¿migrar a un nuevo juego de caracteres?:

 

 

Author: Sergio Luján Mora

Profesor del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante (España). Interesado en el desarrollo y la accesibilidad web.

18 Comments

  1. Hola,
    Esta bien eso de ayudar a los demás, pero ser menos categórico e insultante ayudaría a ver tu contribución de otro modo. No soy de marca ni tengo relación alguna con ellos pero llamarles chapuceros sin conocer su situación … En fin, creo que uno debe tirar de las orejas cuando sea necesario pero sin faltar. Seguro que muchos de tus lectores se sentirán menos violentos como es mi caso.

    Buenas tardes.

  2. José Antonio, supongo que debes pertenecer al club de los “políticamente correcto” o de los defensores de la mediocridad.

    Creo que chapucero no es faltar a nadie el respeto. Faltar habría sido decir que son unos “gilipollas analfabetos”. Pero yo eso no lo digo, simplemente lo pongo como un ejemplo de insulto y de lo que no se debe decir nunca.

    Un chapucero es una persona que trabaja de forma tosca y grosera. Tosco significa grosero, sin pulimento, sin un buen acabado. Grosero es algo basto, ordinario y sin arte, en definitiva, mal terminado.

    Si me dices que un sitio web en el que no me permiten utilizar ni vocales acentuadas ni la eñe es un sitio bien hecho y con un buen acabado, me veo incapaz de comentar este tema contigo, porque vivimos en universos diferentes.

    ¡Ahh! Y no te olvides de algo, ayer aparecía que la carrera de Alicante era el 7 de octubre 🙂

    José Antonio, si eres informático, no te sientas ofendido, otra explicación es que el sitio web lo haya hecho “el sobrino del jefe que sabe hacer páginas web”. Pero ese es un tema del que podría hablar mucho…

  3. Imagino que pertenezco al de las personas que no ofenden gratuitamente. Y más cuando asocia Vd., informático con chapucero, siendo posible -como comenta- que no haya sido un informático quien haya hecho la web (por esto dije lo de no conocer la situación). O vaya Vd. a saber.

    Tampoco creo que tenga derecho a hacer jucios como para decir que defiendo la mediocridad, no creo que nadie en su sano juicio lo haga. Esto, señor mío, es insultar. Aunque no lo vea así, insultar o faltar al respeto no consiste unicamente en usar palabras mal sonantes. Yo, le puedo llamar a Vd. gilipollas, pero jamás lo haria. O también le puedo llamar “estira levitas” y no parece un insulto, pero si se ahonda en la frase, podrá comprobar que la falta de respeto es infinita.

    Un chapucero, también es una persona que miente con su trabajo (embustero en su tercera acepción en la RAE)…en fin.

    “Si me dices que un sitio web en el que no me permiten utilizar ni vocales acentuadas ni la eñe es un sitio bien hecho y con un buen acabado, me veo incapaz de comentar este tema contigo, porque vivimos en universos diferente”

    Como le comenté, no discuto que esté bien o mal -por supuesto que está mal- (le dije que cuando se merece un tirón de orejas alguien, se le da y listo). Y le doy la razón, vivimos en unviersos diferentes; jamás he faltado gratuitamente al respeto a nadie. Incluso viendo el desdén de su respuesta, no lo haré. Y no es porque defienda la mediocridad (…)

    Nuestros universos no son tan dispares. También soy Dr. y docente de universidad, como Vd. con artículos, con experiencia como revisor de revistas (esto te da la capacidad de criticar si faltar al respeto), con patentes transferidas, con mil cosas mas que no cabe comentar aqui, ah! y también informático.

    Aunque, como se puede inferir, el respeto no lo otorga ninguna titulación. Se que su respuesta viene por un “calentón” y sólo le he indicado que, en mi caso personal, me he sentido incómodo. Sólo esto.

    Un saludo.

  4. Estimado Sr.

    disculpe su usía la nueva interrupción. Pero me permito recordarle que la censura es un acto de cobardía manifiesta.

    Es una pena que en el seno de las instituciones educativas uno se encuentre a personajes como Vd. Igual no se ha parado a pensar que de ser titulados superiores a quienes Vd. ofende, han podido ser pupilos suyos …. Y de aquellos Barros estos lodos.

    Estoy seguro que no publicará esto tampoco, pero quedaré satisfecho si lo lee Vd. y reflexiona.

    Hasta más ver.

  5. José Antonio, aunque supongo que no te llamas así y te escondes en el anonimato, lo cual sí que es un acto de cobardía:

    No suelo hablar con desconocidos, me lo enseñó mi madre de pequeño. Hoy en día está muy extendida la cobardía de verter todo tipo de comentarios en los blogs gracias al anonimato que facilita. Yo, como verás, estoy muy bien identificado.

    Voy a escribir una entrada en tu honor: tu segundo comentario no apareció porque fue clasificado como spam, lo cual me hace entender que Akismet funciona mejor de lo que pensaba 🙂

    No tengo ningún problema en publicar comentarios en los que me lleven la contraria. Eso anima el blog y muestra que hay disparidad de opiniones. O incluso comentarios en los que me insulten: me enfadan, pero no me molestan porque es un ejemplo de una de las libertades más importantes, la libertad de expresión.

    No voy a contestar tu comentario línea a línea, porque entonces tu me volverías a contestar y supongo que tenemos cosas mejores que hacer. Tu comentario queda ahí y punto. Pero si quieres contestar este comentario, contesta, yo estaré encantado de que aparezca.

    Pero sí te digo una cosa: en informática hay mucho chapucero, y ya escribiré sobre ello. Y cuidado: los chapuceros a veces matan personas.

  6. Pingback: Sobre los comentarios en este blog (y en otros blogs) | Programación en Internet

  7. Pingback: Sobre las chapuzas informáticas de Marca | Programación en Internet

  8. Pingback: Google también tiene problemas con el juego de caracteres | Programación en Internet

  9. Estimado, o mejor dicho estimadísimo Sergio. Supongo que el debate previo debe ser enriquecedor (“”), pero no le escribo para defenderlo, sino por un asunto que me atañe. Varias semanas llevaba buscando como sacar ese salto de línea que aparecía en mi página. Hasta ahora sólo había logrado que los caracteres no se vieran, pero sospechaba que allí seguían estando. Usted tiene razón, hay que saber mucho. Pero ud se ha sabido poner en el lugar de los que somos autodidactas 100% y hacemos esto, -aunque con pasión-, por entretenimiento. Estoy mu feliz, no sólo por haber sacado ese molesto salto de página antiestético de mi página, sino por haber podido dormir tranquilo al fin. Hoy me levanté deseoso de agradecerle el tiempo que ud ocupó, sin obligación ni premio, en que yo lograra todo esto. De corazón.
    Pd: espero que los acentos salgan correctamente en el mensaje. Un abrazo!!

  10. Hola Fabián.

    Me alegra saber que has resuelto tus problemas con el juego de caracteres gracias a mis vídeos. Por lo que me cuentas, intuyo que tenías problemas con el BOM en el UTF-8.

    Un abrazo para Argentina 🙂

  11. Pingback: El juego de caracteres ISO 8859 | Programación en Internet

  12. Buenos Dias
    Programar es complicado. No cualquiera lo hace. Y llevo buen tiempo programando, cuando me topo con esta broma del UTF-8 y el juego de caracteres. Bueno hay que decir que es un problemas inherente al lenguaje humano, no es lo mismo el lenguaje inglés cuyo juego de caracteres es muy sencillo, al español (con su maldita ñ), al griego, al chino, etc.
    Claro que ya existen los estándares, sin embargo su adopción es lenta. Es una munga tener que checar la BD (por ejemplo mySQL), el juego de caracteres de PHP, y además batallar con las librerías con FPDF y su pobre soporte a UTF-8. Y encima HTML no fue creado pensado en esto, con su extraña notación &acuote, etc.
    Queda decir que por lo pobre, mal implementadas, y parcialmente desarrolladas de estas tecnologías, es un trabajo considerable y un deber de el buen programador saber trabajar con todas ellas. Solo quiero resaltar que no es tarea fácil.
    Puede llamar “chapucera” a la empresa por no invertir mas en su página, pero siento que habiendo pasado por el trabajo que es adaptarse al enredo que es el uso de el juego de caracteres, me siento en deber de defender un poco al programador, que no es tarea fácil hacer todo esto.

  13. Hola Roberto.

    Yo soy programador y desarrollador web, y si escribo esto es porque sé de lo que hablo.

    Cuando no se saben bien las cosas es cuando las cosas fallan, no se sabe la razón y no se sabe cómo arreglarlo.

    Por ejemplo, hablas de &acuote (supongo que quieres decir &aacute). Eso no es necesario si utilizas el juego de caracteres adecuado y un editor de textos adecuado. Sin embargo, todavía sigo escuchando gente que cree que hay que escribir &aacute si quieres asegurarte de que “á” se visualice correctamente en cualquier navegador. Error.

    Un saludo.

  14. Te entiendo. Cada vez entiendo mejor esto de la programación web (Dios que todo fuera tan hermoso como C++ y Visual Basic).
    Sin duda la tecnología ha avanzado mucho y un buen programador debe mantenerse al día. Pero sigo sintiendo que todo es culpa de las tecnologías, mal hechas desde mi punto de vista. Que han mejorado y siguen haciéndolo es cierto, pero causan bastante confusión.
    Por ejemplo para que se me visualize bien en un xml un campo tomado desde una base de datos mysql, he tenido que hacer esta barbaridad en PHP:
    $nombre = htmlspecialchars(htmlentities($item->cNombre));
    Como funciona no lo se. El punto es que no es nada intuitivo ni sencillo el uso del juego de caracteres. No es excusa claro para el buen programador. Pero insisto en que toma su tiempo adaptarse a estos inconvenientes del lenguaje.

  15. Como actualización, lo que hize era insuficiente. Para algunos registros funcionaba, para otros no. Finalmente tuve que hacer esto:


    <!DOCTYPE xsl:stylesheet [

    ]>

    Para que el XML reconociera las entidades HTML (por default XML reconoce muy pocas entidades HTML, hay que definirselas, otra maravilla del lenguaje).
    Y cambiar la línea que tenía por esto por esto:
    $nombre = htmlentities(utf8_encode ( $item->cNombre));
    Tras horas de ardua investigación en foros web, llegue a esta solución, que nadie te da a la primera de forma concisa.
    Y vi a varios de programadores en el mismo infierno del juego de caracteres.
    Conclusión, los estandares web, andan mal, y en los cursos de programación, debe incluirse un capitulo para esto del juego de caracteres…al menos hasta que sea mas transparente su manejo en el desarrollo web.

  16. Pingback: En McDonald’s no conocen el juego de caracteres | Programación en Internet

  17. Pingback: Juego de caracteres erróneo ¡en un mapa! | Programación en Internet

  18. Pingback: Hemos logrado llegar a la Luna pero no hemos logrado entender el juego de caracteres | Programación en Internet

Deja un comentario

Required fields are marked *.