Mojibake

ImprimirCitar
Texto de Garbled como resultado de codificación de caracteres incorrectos
El artículo de Wikipedia en japonés de UTF-8 para Mojibake como se muestra si se interpreta como codificación de Windows-1252

Mojibake (japonés: 文字化け; IPA: [mod͡ʑibake], "transformación de caracteres") es el texto ilegible que es el resultado de la decodificación del texto usando un codificación de caracteres no deseada. El resultado es un reemplazo sistemático de símbolos por otros que no tienen ninguna relación, a menudo de un sistema de escritura diferente.

Esta pantalla puede incluir el carácter de reemplazo genérico ("�") en lugares donde la representación binaria se considera no válida. Un reemplazo también puede involucrar múltiples símbolos consecutivos, como se ve en una codificación, cuando el mismo código binario constituye un símbolo en la otra codificación. Esto se debe a las diferencias en la codificación de longitud constante (como en las codificaciones asiáticas de 16 bits frente a las codificaciones europeas de 8 bits) o al uso de codificaciones de longitud variable (en particular, UTF-8 y UTF-16).

La representación fallida de glifos debido a fuentes faltantes o glifos faltantes en una fuente es un problema diferente que no debe confundirse con mojibake. Los síntomas de esta representación fallida incluyen bloques con el punto de código mostrado en hexadecimal o usando el carácter de reemplazo genérico. Es importante destacar que estos reemplazos son válidos y son el resultado del manejo correcto de errores por parte del software.

Causas

Para reproducir correctamente el texto original que se codificó, se debe preservar la correspondencia entre los datos codificados y la noción de su codificación (es decir, los estándares de codificación de origen y de destino deben ser los mismos). Como mojibake es la instancia de incumplimiento entre estos, se puede lograr manipulando los datos en sí, o simplemente volviéndolos a etiquetar.

Mojibake a menudo se ve con datos de texto que han sido etiquetados con una codificación incorrecta; es posible que ni siquiera esté etiquetado, sino que se mueva entre computadoras con diferentes codificaciones predeterminadas. Una fuente importante de problemas son los protocolos de comunicación que dependen de la configuración de cada computadora en lugar de enviar o almacenar metadatos junto con los datos.

Las diferentes configuraciones predeterminadas entre computadoras se deben en parte a las diferentes implementaciones de Unicode entre las familias de sistemas operativos, y en parte a las codificaciones heredadas' especializaciones para los diferentes sistemas de escritura de los lenguajes humanos. Mientras que las distribuciones de Linux cambiaron principalmente a UTF-8 en 2004, Microsoft Windows generalmente usa UTF-16 y, a veces, usa páginas de códigos de 8 bits para archivos de texto en diferentes idiomas.

Para algunos sistemas de escritura, como el japonés, históricamente se han empleado varias codificaciones, lo que hace que los usuarios vean mojibake con relativa frecuencia. Como ejemplo, la palabra mojibake ("文字化け") almacenada como EUC-JP podría mostrarse incorrectamente como "ハクサ�ス、ア", "ハクサ嵂ス、ア" (MS-932), o "ハクサ郾ス、ア" si se interpreta como Shift-JIS, o como "ʸ»ú²½¤±" en el software que asume que el texto está en las codificaciones Windows-1252 o ISO-8859-1, generalmente etiquetadas como Occidental o Europa occidental. Esto se agrava aún más si hay otras configuraciones regionales involucradas: el mismo texto almacenado como UTF-8 aparece como "譁�蟄怜喧縺�" si se interpreta como Shift-JIS, como "ae–‡å—化ã‘" si se interpreta como occidental o (por ejemplo) como "鏂囧瓧鍖栥亼" si se interpreta como si estuviera en una configuración regional de GBK (China continental).

Mojibake ejemplo
Texto original . . . Observador
Bytes crudos de codificación EUC-JP CAB8BBFAB2BDA4B1
EUC-JP bytes interpreted as Shift-JIS ÍNDICE...,JUEGO
EUC-JP bytes interpreted as GBK ..Observador
Los bytes EUC-JP interpretados como Windows-1252 Ê.»ú21⁄2#±
Bytes crudos de codificación UTF-8 E69687E5AD97E58C96E38191
UTF-8 bytes interpreted as Shift-JIS
UTF-8 bytes interpreted as GBK
UTF-8 bytes interpretado como Windows-1252 æ.åSHYå..HOP'

Subespecificación

Si no se especifica la codificación, depende del software decidirlo por otros medios. Según el tipo de software, la solución típica es la configuración o la heurística de detección de juego de caracteres. Ambos son propensos a errores de predicción.

La codificación de los archivos de texto se ve afectada por la configuración regional, que depende del idioma del usuario, la marca del sistema operativo y muchas otras condiciones. Por lo tanto, la codificación asumida es sistemáticamente incorrecta para los archivos que provienen de una computadora con una configuración diferente, o incluso de un software localizado de manera diferente dentro del mismo sistema. Para Unicode, una solución es usar una marca de orden de bytes, pero para el código fuente y otro texto legible por máquina, muchos analizadores no lo toleran. Otro es almacenar la codificación como metadatos en el sistema de archivos. Los sistemas de archivos que admiten atributos de archivos extendidos pueden almacenar esto como user.charset. Esto también requiere soporte en software que quiera aprovecharlo, pero que no moleste a otro software.

Si bien algunas codificaciones son fáciles de detectar, como UTF-8, hay muchas que son difíciles de distinguir (ver detección de juego de caracteres). Es posible que un navegador web no pueda distinguir una página codificada en EUC-JP y otra en Shift-JIS si la codificación no se asigna explícitamente mediante encabezados HTTP enviados junto con los documentos, o mediante las metaetiquetas del documento HTML que se utilizan para sustituir los encabezados HTTP faltantes si el servidor no se puede configurar para enviar los encabezados HTTP adecuados; ver codificaciones de caracteres en HTML.

Especificación incorrecta

Mojibake también ocurre cuando la codificación se especifica incorrectamente. Esto sucede a menudo entre codificaciones que son similares. Por ejemplo, se sabía que el cliente de correo electrónico Eudora para Windows enviaba correos electrónicos etiquetados como ISO-8859-1 que en realidad eran Windows-1252. Windows-1252 contiene caracteres imprimibles adicionales en el rango C1 (los más frecuentes son las comillas curvas y los guiones adicionales), que no se mostraban correctamente en el software que cumple con el estándar ISO; esto afectó especialmente al software que se ejecutaba en otros sistemas operativos como Unix.

Supervisión del usuario

De las codificaciones que aún son de uso común, muchas se originaron al tomar ASCII y agregarlo encima; como resultado, estas codificaciones son parcialmente compatibles entre sí. Ejemplos de esto incluyen Windows-1252 e ISO 8859-1. Por lo tanto, las personas pueden confundir el conjunto de codificación expandido que están utilizando con ASCII simple.

Sobreespecificación

Cuando hay capas de protocolos, cada uno de los cuales intenta especificar la codificación en función de información diferente, la información menos segura puede ser engañosa para el destinatario. Por ejemplo, considere un servidor web que sirve un archivo HTML estático a través de HTTP. El conjunto de caracteres se puede comunicar al cliente de 3 formas distintas:

  • en la cabecera HTTP. Esta información puede basarse en la configuración del servidor (por ejemplo, cuando se sirve un archivo fuera de disco) o controlado por la aplicación que se ejecuta en el servidor (para sitios web dinámicos).
  • en el archivo, como una meta tag HTML (http-equiv o charset) o el encoding atributo de una declaración XML. Esta es la codificación que el autor pretendía guardar el archivo en particular.
  • en el archivo, como marca de orden de byte. Esta es la codificación en la que el editor del autor lo salvó. A menos que haya ocurrido una conversión accidental de codificación (abriéndola en una codificación y guardandola en otra), esto será correcto. Sin embargo, sólo está disponible en codificación Unicode como UTF-8 o UTF-16.

Falta de soporte de hardware o software

El hardware mucho más antiguo suele estar diseñado para admitir solo un conjunto de caracteres y, por lo general, el conjunto de caracteres no se puede modificar. La tabla de caracteres contenida en el firmware de la pantalla se localizará para tener caracteres para el país en el que se venderá el dispositivo y, por lo general, la tabla difiere de un país a otro. Como tal, estos sistemas potencialmente mostrarán mojibake al cargar texto generado en un sistema de un país diferente. Del mismo modo, muchos de los primeros sistemas operativos no admiten múltiples formatos de codificación y, por lo tanto, terminarán mostrando mojibake si se hace que muestre texto no estándar; las primeras versiones de Microsoft Windows y Palm OS, por ejemplo, están localizadas por país y solo Admite estándares de codificación relevantes para el país en el que se venderá la versión localizada y mostrará mojibake si se abre un archivo que contiene un texto en un formato de codificación diferente de la versión que el sistema operativo está diseñado para admitir.

Resoluciones

Las aplicaciones que utilizan UTF-8 como codificación predeterminada pueden lograr un mayor grado de interoperabilidad debido a su uso generalizado y compatibilidad con versiones anteriores de US-ASCII. UTF-8 también tiene la capacidad de ser reconocido directamente por un algoritmo simple, por lo que un software bien escrito debería poder evitar mezclar UTF-8 con otras codificaciones.

La dificultad de resolver una instancia de mojibake varía según la aplicación dentro de la cual ocurre y las causas de la misma. Dos de las aplicaciones más comunes en las que puede aparecer mojibake son los navegadores web y los procesadores de texto. Los navegadores y procesadores de texto modernos a menudo admiten una amplia gama de codificaciones de caracteres. Los navegadores a menudo permiten al usuario cambiar la configuración de codificación de su motor de renderizado sobre la marcha, mientras que los procesadores de texto permiten al usuario seleccionar la codificación adecuada al abrir un archivo. Es posible que los usuarios necesiten un poco de prueba y error para encontrar la codificación correcta.

El problema se vuelve más complicado cuando ocurre en una aplicación que normalmente no admite una amplia gama de codificación de caracteres, como en un juego de computadora que no es Unicode. En este caso, el usuario debe cambiar la configuración de codificación del sistema operativo para que coincida con la del juego. Sin embargo, cambiar la configuración de codificación de todo el sistema también puede causar Mojibake en aplicaciones preexistentes. En Windows XP o posterior, un usuario también tiene la opción de usar Microsoft AppLocale, una aplicación que permite cambiar la configuración regional por aplicación. Aun así, no es posible cambiar la configuración de codificación del sistema operativo en sistemas operativos anteriores como Windows 98; para resolver este problema en sistemas operativos anteriores, el usuario tendría que usar aplicaciones de procesamiento de fuentes de terceros.

Problemas en diferentes sistemas de escritura

Inglés

Mojibake en textos en inglés generalmente aparece en signos de puntuación, como guiones largos (—), guiones cortos (–) y comillas tipográficas (“,”,','), pero rara vez en texto de caracteres, ya que la mayoría de las codificaciones concuerdan con ASCII sobre la codificación del alfabeto inglés. Por ejemplo, el signo de libra "£" aparecerá como "£" si fue codificado por el remitente como UTF-8 pero interpretado por el destinatario como una de las codificaciones de Europa Occidental (CP1252 o ISO 8859-1). Si se itera usando CP1252, esto puede conducir a "£", "£", "ÃÆ'ââ'¬Å¡ & #34;, etc

Algunas computadoras, en épocas más antiguas, tenían codificaciones específicas del proveedor, lo que provocaba una discrepancia también para el texto en inglés. Las computadoras de 8 bits de la marca Commodore usaban la codificación PETSCII, particularmente notable por invertir las mayúsculas y minúsculas en comparación con el ASCII estándar. Las impresoras PETSCII funcionaron bien en otras computadoras de la época, pero invirtieron el caso de todas las letras. Los mainframes de IBM utilizan la codificación EBCDIC que no coincide en absoluto con ASCII.

Otros idiomas de Europa occidental

Los alfabetos de las lenguas germánicas del norte, el catalán, el finlandés, el francés, el alemán, el italiano, el portugués y el español son extensiones del alfabeto latino. Los caracteres adicionales suelen ser los que se corrompen, lo que hace que los textos sean ligeramente ilegibles con mojibake:

  • å, ä, ö en finlandés y sueco
  • a, ç, è, é, ï, ò, ó, ú, ü en catalán
  • æ, ø, å en noruego y danés
  • a, é, ó, ij, è, ë, ï in Dutch
  • ä, ö, ü, and ß in German
  • a, ð, í, ó, ú, ý, æ, ø in Faroese
  • En islandés.
  • a, â ç, è, é, ë, ê, ï, î, ô, ù, û, ü, ÿ, æ, œ in French
  • a, è, é, ì, ò, ù en italiano
  • a, é, í, ñ ó, ú, ü,
  • à, á, â, ã, ç, é, ê, í, ó, ô, õ, ú in Portuguese (ü no longer used)
  • a, é, í, ó, ú en irlandés
  • ################################################################################################################################################################################################################################################################
  • £ en inglés británico

... y sus equivalentes en mayúsculas, si corresponde.

Estos son idiomas para los que se ha utilizado el juego de caracteres ISO-8859-1 (también conocido como Latin 1 o Western). Sin embargo, ISO-8859-1 ha quedado obsoleto por dos estándares en competencia, el Windows-1252 compatible con versiones anteriores y el ISO-8859-15 ligeramente modificado. Ambos agregan el signo del euro € y el francés œ, pero por lo demás, cualquier confusión de estos tres conjuntos de caracteres no crea mojibake en estos idiomas. Además, siempre es seguro interpretar ISO-8859-1 como Windows-1252, y bastante seguro interpretarlo como ISO-8859-15, en particular con respecto al signo del euro, que reemplaza el signo de moneda (¤) que rara vez se usa.. Sin embargo, con la llegada de UTF-8, mojibake se ha vuelto más común en ciertos escenarios, p. intercambio de archivos de texto entre ordenadores UNIX y Windows, debido a la incompatibilidad de UTF-8 con Latin-1 y Windows-1252. Pero UTF-8 tiene la capacidad de ser reconocido directamente por un algoritmo simple, por lo que un software bien escrito debería poder evitar mezclar UTF-8 con otras codificaciones, por lo que esto era más común cuando muchos tenían software que no admitía UTF-8. La mayoría de estos idiomas eran compatibles con el CP437 predeterminado de MS-DOS y otras codificaciones predeterminadas de la máquina, excepto ASCII, por lo que los problemas al comprar una versión del sistema operativo eran menos comunes. Sin embargo, Windows y MS-DOS no son compatibles.

En sueco, noruego, danés y alemán, las vocales rara vez se repiten y, por lo general, es obvio cuando un carácter se corrompe, p. la segunda letra de la palabra sueca kärlek ("amor") cuando está codificado en UTF-8 pero decodificado en occidental, produciendo "kÃ⁠¤rlek", o über en alemán, que se convierte en "über". De esta forma, aunque el lector tenga que adivinar cuál es la letra original, casi todos los textos siguen siendo legibles. El finlandés, por otro lado, usa con frecuencia vocales repetidas en palabras como hääyö ("noche de bodas") que puede hacer que el texto dañado sea muy difícil de leer (por ejemplo, hääyö aparece como "hÃ⁠¤Ã⁠¤yÃ⁠¶"). El islandés tiene diez caracteres que posiblemente se confundan, y el feroés tiene ocho, lo que hace que muchas palabras sean casi completamente ininteligibles cuando se corrompen (por ejemplo, islandés þjóðlöð , "excepcional hospitalidad", aparece como "þjóðlöð").

En alemán, Buchstabensalat ("ensalada de letras") es un término común para este fenómeno, y en español, deformación (literalmente "deformación").

Algunos usuarios transliteran su escritura cuando usan una computadora, ya sea omitiendo los diacríticos problemáticos o usando reemplazos de dígrafos (å → aa, ä/æ → ae, ö/ø → oe, ü → ue, etc.). Por lo tanto, un autor podría escribir "ueber" en lugar de "über", que es una práctica estándar en alemán cuando no hay diéresis disponibles. Esta última práctica parece tolerarse mejor en el ámbito de la lengua alemana que en los países nórdicos. Por ejemplo, en noruego, los dígrafos están asociados con el danés arcaico y pueden usarse en broma. Sin embargo, los dígrafos son útiles en la comunicación con otras partes del mundo. Como ejemplo, el apellido del jugador de fútbol noruego Ole Gunnar Solskjær se deletreaba "SOLSKJAER" en su uniforme cuando jugaba en el Manchester United.

Un artefacto de UTF-8 malinterpretado como ISO-8859-1, "Ring meg nå" representado como "Ring meg nÃ¥", fue visto en 2014 en una estafa de SMS dirigida a Noruega.

Ejemplo suecoCodificación de fuentesCodificación de objetivosResultado
(Los obstáculos en rojo son incorrectos.)
Smörgås
(sándwich abierto)
MS-DOS 437ISO 8859-1Sm"rgs
UTF-8Smörgà ¥s
IBM/CP037 (EBCDIC)################################################################################################################################################################################################################################################################
Mac RomanSmórgås
ISO 8859-1Sm.rg#s

Europa Central y del Este

Los usuarios de idiomas de Europa Central y del Este también pueden verse afectados. Debido a que la mayoría de las computadoras no estaban conectadas a ninguna red entre mediados y fines de la década de 1980, había diferentes codificaciones de caracteres para cada idioma con caracteres diacríticos (consulte ISO/IEC 8859 y KOI-8), que a menudo también variaban según el sistema operativo.

Húngaro

En húngaro, el fenómeno se conoce como betűszemét, que significa "basura de letras". El húngaro ha sido particularmente susceptible ya que contiene las letras acentuadas á, é, í, ó, ú, ö, ü (todas presentes en el juego de caracteres Latin-1), más los dos caracteres ő y ű que no están en Latin-1. Estos dos caracteres se pueden codificar correctamente en Latin-2, Windows-1250 y Unicode. Sin embargo, antes de que Unicode se volviera común en los clientes de correo electrónico, los correos electrónicos que contenían texto en húngaro a menudo tenían las letras ő y ű corruptas, a veces hasta el punto de ser irreconocibles. Es común responder a un correo electrónico corrupto con la frase sin sentido "Árvíztűrő tükörfúrógép" (literalmente "Máquina perforadora de espejos resistente a inundaciones") que contiene todos los caracteres acentuados que se usan en húngaro.

Ejemplos
Ejemplo húngaroCodificación de fuentesCodificación de objetivosResultadoOccurrence
ÁRVÍZT⋅R spontaneous TÜKÖRFÚRÓGÉP
árvíztûrő tükörfúrógép
CWI-2CP 437 ÅRV.ZTÿRo TÜKÖRFùR#GÉP
Árviztûrô tükörfúrógép
La codificación CWI-2 fue diseñada para que el texto húngaro siga siendo bastante bien legible incluso si el dispositivo en el extremo receptor utiliza una de las codificacións predeterminadas (CP 437 o CP 850). Esta codificación se utilizó muy fuertemente entre los principios de los años ochenta y principios de los noventa, pero hoy en día está completamente deprecatada.
CP 852 RVZTδRè TÜKÖRF.RαGÉP
Árviztrï tükörfúrógép
Esto fue muy común en los días de DOS, ya que el texto fue codificado a menudo usando la página de código 852 ("europeo Central"), pero el software en el extremo receptor a menudo no apoyó CP 852 y en su lugar trató de mostrar texto utilizando CP 437 o CP 850. Las letras minúsculas son principalmente correctas, excepto para ف y ő. Ü/ü y Ö/ö son correctas porque CP 437 y CP 850 se hicieron compatibles con alemán. Aunque esto es raro hoy en día, todavía se puede ver en lugares como en recetas impresas y cheques.
CP 850 ÁRVÍZT.Rè TÜKÖRFÚRÓGÉP
Árvizt1rï tükörfúrógép
Windows-1250 μRVÖZTëRŠ TšKTMRFéRàG.P
rv.ztûr t...k"rfŁr¢g.p
Ambas codificacións son de Europa Central, pero el texto está codificado con la codificación DOS y decodificado con la codificación Windows. El uso de ف es correcto.
Mac Roman μRV.ZTÎRä T.KôRFÈlR.GêP
rv°zt̊r. tÅkîrf£r¢gÇp
También es común en los días de DOS, esto podría verse cuando los ordenadores de Apple intentaron mostrar el texto húngaro enviado con máquinas DOS o Windows, ya que a menudo se omitían a la codificación propia de Apple.
Windows-1250 ¡No!RV.ZTR TK.RF.RG...P
·rv.zt̊rı t.k.rfÍr.gÈlp
CP 852 .RVZT.RØ TKÍRF.R.G.P
ßrvÍztûr§ tŘk.rfÍr.gÚp
Ambas codificacións son de Europa Central, pero el texto está codificado con la codificación de Windows y decodificado con la codificación DOS. El uso de ف es correcto.
Windows-1252 ÁRVÍZT.R. TÜKÖRFÚRÓGÉP
Árviztûrõ tükörfúrógép
La codificación por defecto de Windows de Europa Occidental se utiliza en lugar de la central-europea. Únicamente ő-precisa (õ-’) y ف-⋅ (û-σ) están equivocados, y el texto es completamente legible. Este es el error más común hoy en día; debido a la ignorancia, ocurre a menudo en páginas web o incluso en medios impresos.
UTF-8 Ão...RV.ZTÅ°RÅ- T#KÃ-RFÚRÃ"GÃ.P
árvÃztűrÅ ' tÃ1⁄4körfÃorÃ3gélp
Principalmente causado por servicios web o clientes de correo web que se configuran incorrectamente o no se prueban para uso internacional (como el problema sigue oculto para textos en inglés). En este caso, el contenido real (a menudo generado) está en UTF-8, pero algún software anterior puede predeterminarse a las codificacións localizadas si UTF-8 no se especifica explícitamente en los encabezados HTML.
Mac Roman ÁRVÍZTR TÜKÖRFÚRÓGÉP
√°rv√≥ztr t√ok√≥rf√∫r√≥≥g√©p
Quoted-printable =C3=81RV=C3=8DZT=C5=B0R=C5=90 T=C3=9CK=C3=96RF=C3=9AR=C3=93G= C3=89P =C3=A1rv=C3=ADzt=C5=B1r=C5=91 t=C3=BCk=C3=B6rf=C3=BAr=C3=B3g=C3=A9p Principalmente causada por servidores de correo configurados incorrectamente pero puede ocurrir en mensajes SMS en algunos teléfonos celulares también.
ISO 8859-2 =C1RV= CDZT= BDR= D5T= PMAK= D6RF= ADAR= D3G=C9P
=E1rv=zt= FBr= F5t=FCk= F6rf= FFAr= F3g= E9p

Polaco

Antes de la creación de ISO 8859-2 en 1987, los usuarios de varias plataformas informáticas usaban sus propias codificaciones de caracteres, como AmigaPL en Amiga, Atari Club en Atari ST y Masovia, IBM CP852, Mazovia y Windows CP1250 en computadoras IBM. Las empresas polacas que vendían las primeras computadoras DOS crearon sus propias formas mutuamente incompatibles de codificar caracteres polacos y simplemente reprogramaron las EPROM de las tarjetas de video (generalmente CGA, EGA o Hercules) para proporcionar páginas de códigos de hardware con los glifos necesarios para polaco, ubicados arbitrariamente sin referencia a dónde los habían colocado otros vendedores de computadoras.

La situación comenzó a mejorar cuando, tras la presión de grupos académicos y de usuarios, ISO 8859-2 se convirtió en el "estándar de Internet" con apoyo limitado de los proveedores dominantes' software (hoy en gran parte reemplazado por Unicode). Con los numerosos problemas causados por la variedad de codificaciones, incluso hoy en día algunos usuarios tienden a referirse a los caracteres diacríticos polacos como krzaczki ([ˈkʂät͜ʂ.ki], lit. "pequeños arbustos& #34;).

Ruso y otros alfabetos cirílicos

Mojibake se llama coloquialmente krakozyabry (кракозя́бры [krɐkɐˈzʲæbrɪ̈], literalmente "caracteres basura") en ruso, que era y sigue siendo complicado por varios sistemas de codificación del cirílico. La Unión Soviética y la antigua Federación Rusa desarrollaron codificaciones KOI (Kod Obmena Informatsiey, Kod Obmena Informatsiey, -language text">Код Обмена Информацией, que se traduce como "Código para el intercambio de información"). Esto comenzó con KOI7 de 7 bits solo en cirílico, basado en ASCII pero con el latín y algunos otros caracteres reemplazados por letras cirílicas. Luego vino la codificación KOI8 de 8 bits, que es una extensión ASCII que codifica letras cirílicas solo con octetos de conjuntos de bits altos correspondientes a códigos de 7 bits de KOI7. Es por esta razón que el texto KOI8, incluso el ruso, sigue siendo parcialmente legible después de quitar el octavo bit, lo que se consideraba una gran ventaja en la era de los sistemas de correo electrónico que no conocían 8BITMIME. Por ejemplo, las palabras "Школа русского языка" shkola russkogo yazyka, codificado en KOI8 y luego pasado por el proceso de extracción de bits alto, termina renderizado como "[KOLA RUSSKOGO qZYKA". Eventualmente, KOI8 obtuvo diferentes sabores para ruso y búlgaro (KOI8-R), ucraniano (KOI8-U), bielorruso (KOI8-RU) e incluso tayiko (KOI8-T).

Mientras tanto, en Occidente, la página de códigos 866 admitía ucraniano y bielorruso, así como ruso/búlgaro en MS-DOS. Para Microsoft Windows, la página de códigos 1251 agregó soporte para serbio y otras variantes eslavas del cirílico.

Más recientemente, la codificación Unicode incluye puntos de código para prácticamente todos los caracteres de todos los idiomas del mundo, incluidos todos los caracteres cirílicos.

Antes de Unicode, era necesario hacer coincidir la codificación del texto con una fuente usando el mismo sistema de codificación. De lo contrario, se producía un galimatías ilegible cuya apariencia específica variaba según la combinación exacta de codificación de texto y codificación de fuente. Por ejemplo, intentar ver texto cirílico que no sea Unicode usando una fuente limitada al alfabeto latino, o usando la codificación predeterminada ("occidental"), normalmente da como resultado un texto que consiste casi en su totalidad en vocales con signos diacríticos. marcas (por ejemplo, KOI8 "Библиотека" (biblioteka, biblioteca) se convierte en "âÉÂÌÉÏÔÅËÁ", mientras que "Школа русского языка" se convierte en " ûËÏÌÁ ÒÕÓÓËÏÇÏ ÑÚÙËÁ"). El uso de la página de códigos 1251 para ver texto en KOI8 o viceversa da como resultado un texto distorsionado que consiste principalmente en letras mayúsculas (KOI8 y la página de códigos 1251 comparten la misma región ASCII, pero KOI8 tiene letras mayúsculas en la región donde la página de códigos 1251 tiene minúsculas y viceversa). En general, el galimatías cirílico es sintomático del uso de la fuente cirílica incorrecta. Durante los primeros años del sector ruso de la World Wide Web, tanto KOI8 como la página de códigos 1251 eran comunes. A partir de 2017, todavía se pueden encontrar páginas HTML en la página de códigos 1251 y, en raras ocasiones, codificaciones KOI8, así como Unicode. (Se estima que el 1,7% de todas las páginas web en todo el mundo, todos los idiomas incluidos, están codificadas en la página de códigos 1251). Aunque el estándar HTML incluye la capacidad de especificar la codificación para cualquier página web dada en su fuente, esto a veces se descuida, lo que obliga al usuario para cambiar las codificaciones en el navegador manualmente.

En búlgaro, el mojibake a menudo se denomina majmunica (маймуница), que significa "mono's [alfabeto]". En serbio, se llama đubre (ђубре), que significa "basura". A diferencia de la antigua URSS, los eslavos del sur nunca usaron algo como KOI8, y Code Page 1251 era la codificación cirílica dominante allí antes de Unicode. Por lo tanto, estos idiomas experimentaron menos problemas de incompatibilidad de codificación que el ruso. En la década de 1980, las computadoras búlgaras usaban su propia codificación MIK, que es superficialmente similar (aunque incompatible con) CP866.

Ejemplo
Texto originalCodificación de fuentesCodificación de objetivosResultado
Кракозябры
MS-DOS 855ISO 8859-1Çá Èó
KOI8-R################################################################################################################################################################################################################################################################
UTF-8- ¿Qué?
KOI8-Rя я -пппяпяпя╠пя

(El segundo personaje es un espacio que no rompe)

Idiomas yugoslavos

El croata, el bosnio, el serbio (las variedades separadas del idioma serbocroata) y el esloveno agregan al alfabeto latino básico las letras š, đ, č, ć, ž y sus equivalentes mayúsculas Š, Đ, Č, Ć, Ž (solo č/Č, š/Š y ž/Ž en esloveno; oficialmente, aunque se usan otros cuando es necesario, principalmente también en nombres extranjeros). Todas estas letras están definidas en Latin-2 y Windows-1250, mientras que solo algunas (š, Š, ž, Ž, Đ) existen en el sistema operativo predeterminado habitual Windows-1252, y están allí debido a algunos otros idiomas.

Aunque Mojibake puede aparecer con cualquiera de estos caracteres, las letras que no están incluidas en Windows-1252 son mucho más propensas a errores. Así, incluso hoy en día, "šđčćž ŠĐČĆŽ" a menudo se muestra como "šðèæž ŠÐÈÆŽ", aunque ð, È y Æ nunca se usan en los idiomas eslavos.

Cuando se limita a ASCII básico (la mayoría de los nombres de usuario, por ejemplo), los reemplazos comunes son: š→s, đ→dj, č→c, ć→c, ž→z (formas mayúsculas análogas, con Đ→Dj o Đ→DJ dependiendo de las mayúsculas y minúsculas). Todos estos reemplazos introducen ambigüedades, por lo que la reconstrucción del original a partir de ese formulario generalmente se realiza manualmente si es necesario.

La codificación Windows-1252 es importante porque las versiones en inglés del sistema operativo Windows son las más extendidas, no las localizadas. Las razones de esto incluyen un mercado relativamente pequeño y fragmentado, el aumento del precio de la localización de alta calidad, un alto grado de piratería de software (causado a su vez por el alto precio del software en comparación con los ingresos), lo que desalienta los esfuerzos de localización, y la gente prefiere las versiones en inglés. de Windows y otro software.

La campaña para diferenciar el croata del serbio, el bosnio del croata y el serbio, y ahora incluso el montenegrino de los otros tres, crea muchos problemas. Hay muchas localizaciones diferentes, utilizando diferentes estándares y de diferente calidad. No hay traducciones comunes para la gran cantidad de terminología informática que se origina en inglés. Al final, la gente usa préstamos ingleses ("kompjuter" para "computadora", "kompajlirati" para "compilar," etc.), y si no están acostumbrados a los términos traducidos, es posible que no entiendan lo que se supone que debe hacer alguna opción en un menú según la frase traducida. Por lo tanto, las personas que entienden inglés, así como aquellas que están acostumbradas a la terminología inglesa (que son la mayoría, porque la terminología inglesa también se enseña principalmente en las escuelas debido a estos problemas) eligen regularmente las versiones originales en inglés de software no especializado.

Cuando se utiliza la escritura cirílica (para macedonio y parcialmente serbio), el problema es similar al de otras escrituras cirílicas.

Las versiones más recientes de Windows en inglés permiten cambiar la página de códigos (las versiones anteriores requieren versiones especiales en inglés con este soporte), pero esta configuración puede configurarse incorrectamente, y con frecuencia lo hacía. Por ejemplo, Windows 98 y Windows Me se pueden configurar en la mayoría de las páginas de códigos de un solo byte que no son de derecha a izquierda, incluido 1250, pero solo en el momento de la instalación.

Lenguas caucásicas

Los sistemas de escritura de ciertos idiomas de la región del Cáucaso, incluidas las escrituras del georgiano y el armenio, pueden producir mojibake. Este problema es particularmente grave en el caso de ArmSCII o ARMSCII, un conjunto de codificaciones de caracteres obsoletos para el alfabeto armenio que han sido reemplazados por los estándares Unicode. ArmSCII no se usa mucho debido a la falta de apoyo en la industria informática. Por ejemplo, Microsoft Windows no lo admite.

Codificaciones asiáticas

Otro tipo de mojibake ocurre cuando el texto codificado en una codificación de un solo byte se analiza erróneamente en una codificación de varios bytes, como una de las codificaciones para los idiomas de Asia oriental. Con este tipo de mojibake, más de un personaje (normalmente dos) se corrompe a la vez. Por ejemplo, si la palabra sueca kärlek está codificada en Windows-1252 pero decodificada con GBK, aparecerá como "k鋜lek", donde "är" se analiza como "鋜". En comparación con el mojibake anterior, esto es más difícil de leer, ya que faltan letras no relacionadas con los problemáticos å, ä u ö, y es especialmente problemático para palabras cortas que comienzan con å, ä u ö (por ejemplo, "än" se convierte en "鋘"). Dado que se combinan dos letras, el mojibake también parece más aleatorio (más de 50 variantes en comparación con las tres normales, sin contar las mayúsculas más raras). En algunos casos raros, una cadena de texto completa que incluye un patrón de longitudes de palabra particulares, como la oración 'Bush ocultó los hechos', puede malinterpretarse.

Vietnamita

En vietnamita, el fenómeno se llama chữ ma (Hán–Nôm: 𡨸魔, "caracteres fantasma") o loạn mã (del chino 乱码, luànmǎ). Puede ocurrir cuando una computadora intenta decodificar texto codificado en UTF-8 como Windows-1258, TCVN3 o VNI. En Vietnam, chữ ma se veía comúnmente en computadoras que ejecutaban versiones anteriores a Vista de Windows o teléfonos móviles baratos.

EjemploCodificación de fuentesCodificación de objetivosResultado
Trăm năm trong cõi ngrista podáis ta
𤾓𢆥𥪞𡎝𠊛
()Truy?, Nguyễn Du)
UTF-8 Windows-1258 TrÄm nÄm trong cÃμIng.i ta
#3⁄4 "đ¢ " đir "
TCVN3 Tr.m n.m trong cIngêi ta
#3⁄4 ¢ ¢ Yenes 3⁄4ä
VNI (Windows) Trm nm trong cIngöôøi ta
Mac Roman Tr.m n.m trong c√μIngvocacionalistai ta
Descubrir "æì¢Ü••

Japonés

En Japón, el mojibake es especialmente problemático ya que hay muchas codificaciones de texto japonesas diferentes. Además de las codificaciones Unicode (UTF-8 y UTF-16), existen otras codificaciones estándar, como Shift-JIS (máquinas Windows) y EUC-JP (sistemas UNIX). Incluso hasta el día de hoy, tanto los japoneses como los no japoneses se encuentran a menudo con mojibake cuando intentan ejecutar software escrito para el mercado japonés.

Texto originalCodificación de fuentesCodificación de objetivosResultado
のREPUESTAMOS 皆のへ
UTF-8
UTF-7# (q Y _ C G b g)
EUC-JP若 с
Shift-JIS縺薙 繝 繝シיシייクיクァ
Mac RomanÅì â Åâ â É° â Éo â Å ÁöÜÊsò “ÅƔɰ “É Éé”Ça “Éo”
ISO 8859-6... ه šن...
Windows-1252"..."... "..."... "..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."..."...
EUC-JP#3# Yená #1⁄4 Yenes# 3§ IͤؤÎá yenes»1⁄4 Yenes #1
Shift-JIS, ± 1,... ŠF-l-,Ö-W-A-B

Chino

En chino, el mismo fenómeno se llama Luàn mǎ (Pinyin, chino simplificado 乱码, chino tradicional 亂碼, que significa 'código caótico'), y puede ocurrir cuando el texto computarizado está codificado en una codificación de caracteres chinos pero se muestra con la codificación incorrecta. Cuando esto ocurre, a menudo es posible solucionar el problema cambiando la codificación de caracteres sin pérdida de datos. La situación se complica debido a la existencia de varios sistemas de codificación de caracteres chinos en uso, siendo los más comunes: Unicode, Big5 y Guobiao (con varias versiones compatibles con versiones anteriores), y la posibilidad de que los caracteres chinos se codifiquen con codificación japonesa.

Es relativamente fácil identificar la codificación original cuando aparece luànmǎ en las codificaciones de Guobiao:

Texto originalCodificación de fuentesCodificación de objetivosResultadoNota
Big5 GB T瓣вы Personajes con casi ninguna pista de significado original. El carácter rojo no es un punto de código válido en GB 2312.
- ¿Qué? Shift-JIS 暥帤壔偗僥僗僩 Kana se muestra como caracteres con el 亻 (Chino: ; pinyin: dānrénpáng) radical, mientras que kanji son otros personajes. Muchos de los personajes sustitutos son extremadamente raros en chino moderno. Algo fácil de identificar debido a la presencia de múltiples caracteres consecutivos 亻.
- ¿Qué? EUC-KR Aleatorios caracteres simplificados que en la mayoría de los casos no tienen sentido. Probablemente el más fácil de identificar debido a los espacios entre cada varios caracteres.

Un problema adicional en chino ocurre cuando los caracteres raros o anticuados, muchos de los cuales todavía se usan en nombres de personas o lugares, no existen en algunas codificaciones. Ejemplos de esto son:

  • La falta de la "煊" de la codificación Big5xuān) en nombre del político taiwanés Wang Chien-shien (Chino: Despierta; pinyin: Wáng JiànxuānEl "堃"kūn) en el nombre de Yu Shyi-kun (simplified Chinese: Silencio; chino tradicional: Silencio; pinyin: Yóu Xíkūn), y el "喆" (zhé) en el nombre del cantante David Tao (Chino: 陶喆; pinyin: Táo Zhé),
  • GB 2312 falta de la "bienaventura"róng) en el ex-PRC Premier Zhu Rongji (Chino: ; pinyin: Zhū Róngjī), y
  • La falta de GBK del símbolo de copyright "©".

Los periódicos se han ocupado de los caracteres faltantes de varias maneras, incluido el uso de software de edición de imágenes para sintetizarlos mediante la combinación de otros radicales y caracteres; utilizando una imagen de las personalidades (en el caso de los nombres de las personas), o simplemente sustituyendo homófonos con la esperanza de que los lectores puedan hacer la inferencia correcta.

Texto índico

Puede ocurrir un efecto similar en las escrituras brahmánicas o índicas del sur de Asia, utilizadas en idiomas indoarios o índicos como el indostaní (hindi-urdu), bengalí, punjabí, marathi y otros, incluso si el conjunto de caracteres empleado es debidamente reconocido por la aplicación. Esto se debe a que, en muchas escrituras índicas, las reglas por las cuales los símbolos de letras individuales se combinan para crear símbolos para sílabas pueden no ser entendidas correctamente por una computadora que no tenga el software apropiado, incluso si los glifos para las formas de letras individuales están disponibles.

Un ejemplo de esto es el antiguo logotipo de Wikipedia, que intenta mostrar el carácter de forma análoga a "wi" (la primera sílaba de "Wikipedia") en cada una de las muchas piezas del rompecabezas. La pieza del rompecabezas debía llevar el carácter Devanagari para "wi" en su lugar, se utiliza para mostrar el "wa" carácter seguido de una "i" vocal modificadora, fácilmente reconocible como mojibake generado por una computadora no configurada para mostrar texto índico. El logotipo rediseñado en mayo de 2010 ha corregido estos errores.

La idea de texto sin formato requiere que el sistema operativo proporcione una fuente para mostrar los códigos Unicode. Esta fuente es diferente de un sistema operativo a otro para Singhala y crea glifos ortográficamente incorrectos para algunas letras (sílabas) en todos los sistemas operativos. Por ejemplo, el 'reph', la forma abreviada de 'r' es un diacrítico que normalmente va encima de una letra simple. Sin embargo, es incorrecto colocar algunas letras como 'ya' o 'la' en contextos específicos. Para palabras en sánscrito o nombres heredados por idiomas modernos, como कार्य, IAST: kārya, o आर्या, IAST: āryā, es adecuado colocarlo encima de estas letras.. Por el contrario, para sonidos similares en idiomas modernos que resultan de sus reglas específicas, no se coloca encima, como la palabra करणाऱ्या, IAST: karaṇāryā, una forma radical de la palabra común करणारा/री, IAST: karaṇārā/rī, en el idioma marathi. Pero sucede en la mayoría de los sistemas operativos. Esto parece ser una falla de programación interna de las fuentes. En Mac OS e iOS, la muurdhaja l (l oscura) y 'u' combinación y su forma larga producen formas incorrectas.

Windows XP no admitió oficialmente algunos scripts índicos y derivados del índico, sobre todo el laosiano, hasta el lanzamiento de Vista. Sin embargo, varios sitios han creado fuentes de descarga gratuita.

Birmano

Debido a las sanciones occidentales y la llegada tardía de la compatibilidad con el idioma birmano en las computadoras, gran parte de la localización inicial en birmano fue de cosecha propia sin cooperación internacional. El medio predominante de soporte birmano es a través de la fuente Zawgyi, una fuente que se creó como fuente Unicode pero que, de hecho, solo cumplía parcialmente con Unicode. En la fuente Zawgyi, algunos puntos de código para la escritura birmana se implementaron como se especifica en Unicode, pero otros no. El Consorcio Unicode se refiere a esto como codificación de fuentes ad hoc. Con la llegada de los teléfonos móviles, los proveedores de dispositivos móviles como Samsung y Huawei simplemente reemplazaron las fuentes del sistema compatibles con Unicode con versiones de Zawgyi.

Debido a estas codificaciones ad hoc, las comunicaciones entre los usuarios de Zawgyi y Unicode se mostrarían como texto distorsionado. Para solucionar este problema, los productores de contenido harían publicaciones tanto en Zawgyi como en Unicode. El gobierno de Myanmar designó el 1 de octubre de 2019 como el 'Día U' para cambiar oficialmente a Unicode. Se estimó que la transición completa tomaría dos años.

Lenguas africanas

En ciertos sistemas de escritura de África, el texto no codificado es ilegible. Los textos que pueden producir mojibake incluyen los del Cuerno de África, como la escritura Ge'ez en Etiopía y Eritrea, que se usa para el amárico, el tigre y otros idiomas, y el idioma somalí, que emplea el alfabeto osmanya. En el sur de África, el alfabeto Mwangwego se usa para escribir idiomas de Malawi y el alfabeto Mandombe se creó para la República Democrática del Congo, pero generalmente no se admiten. Varios otros sistemas de escritura nativos de África Occidental presentan problemas similares, como el alfabeto N'Ko, usado para los idiomas Manding en Guinea, y el silabario Vai, usado en Liberia.

Árabe

Otro idioma afectado es el árabe (ver más abajo), en el que el texto se vuelve completamente ilegible cuando las codificaciones no coinciden.

Ejemplos

Ejemplo árabeReproducción de navegadorCodificación de fuentesCodificación de objetivosResultado

(Declaración Universal de Derechos Humanos)
العلان العالمى لحقوق ال Esperaنسان
UTF-8KOI8-R ьыыньыьыыеньыы ьыыьыьыьыыныеныеныхььыты Ёьыы
Windows-1250 ا "¿Emprezar?"
Windows-1251 .
Windows-1252 ا denominación " Ø1 milímetros " ا señalización " Ø1Ø §, señalización "
Windows-1256 ", ", ", ", ", ", ", ", ", ", ", "
ISO 8859-5 изеннн иЙий и неннн ненн неннн й й й й ий Гиилине
ISO 8859-6 ع„ tailandés ع„ molecular ع† gradual ع† ع„ gradual ع„ع…عمع‰ة gradual —ع‚ع‚عم це عية ع„ molecular
CP 852 ěžَäěąìa
CP 866 ╪зленный нентивани натени не не не не не не не не нани не не не не не не не не не не не не не ни ни на ни нте ни ни ни ни ни ни на ни ни ни на ни на на на на на на на на на на на на на ни на на ни ни на на ни на на на ни на на ни на на ни ни на ни на ни н ╪злев╪╣╪зленнннненннннуденннентеннный Жентенннненнненнтеннтеннненнтеннн Ø
Mac Árabe ⋅'عÑيficas — seguidores —عيficas — عÜ
Mac Roman ÿQuería decir algo.
Mac Árabe « QUIEN ESTO QUIETO»« QUIÉN QUIÉN QUIÉN ES
Windows-1256 «· ¿Qué quieres decir?
Windows-1252 ÇáÅuáÇä ÇáòÇáãì áÍ ALEMANIA

Los ejemplos de este artículo no tienen UTF-8 como configuración del navegador, porque UTF-8 es fácilmente reconocible, por lo que si un navegador es compatible con UTF-8, debería reconocerlo automáticamente y no intentar interpretar otra cosa como UTF- 8.

Contenido relacionado

Transacciones de Yakarta

Las Transacciones de Jakarta una de las API de EE de Jakarta, permite que se realicen transacciones distribuidas a través de múltiples recursos X/Open XA en...

Linux con seguridad mejorada

Linux con seguridad mejorada es un módulo de seguridad del kernel de Linux que proporciona un mecanismo para admitir políticas de seguridad de control de...

Adjetivo

En lingüística, un adjetivo es una palabra que modifica un sustantivo o una frase nominal o describe su referente. Su función semántica es cambiar la...
Más resultados...
Tamaño del texto:
Copiar