Jump to content

Mojibake

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Filecore (talk | contribs) at 20:09, 5 January 2008 (Problems in specific languages: - oops, corrected a typo). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The UTF-8-encoded Japanese Wikipedia article for mojibake, as displayed in ISO-8859-1 encoding.

Mojibake is the phenomenon of incorrect, unreadable characters (garbage characters) shown when computer software fails to render a text correctly according to its associated character encoding. It is a loanword from Japanese.

Etymology

The Japanese word 文字化け (mojibake, [moʥibake]) is composed of 文字 (moji), which means letter, character, and 化け (bake), from the verb 化ける (bakeru), which means to appear in disguise, to take the form of, to change for the worse. Literally, it means "character changing".

Causes

Mojibake is often caused by forced display of writing systems or character encodings that are "foreign" to the user's computer system: if a computer does not have the software required to process a foreign language's characters, it will attempt to process them in its default language encoding, usually resulting in gibberish. Messages transferred between different encodings of the same language can also have mojibake problems. Japanese language users, with several different encodings historically employed, would encounter this problem relatively often. For example, the intended word "文字化け", encoded in UTF-8, is incorrectly displayed as "文字化け" in some Windows software that is configured to expect text in Windows 1252 encoding (usually labeled ISO-8859-1 or Western).

A web browser may not be able to distinguish a page coded in EUC-JP and another in Shift-JIS if the coding scheme is not assigned explicitly using the HTTP headers sent along with the documents, or using the HTML document's meta tags that are used to substitute for missing HTTP headers if the server cannot be configured to send the proper HTTP headers. Heuristics can be applied to guess at the character set, but these are not always successful.

In the mid 1990s, as this problem became common, several websites featured mojibake not as a problem to be tackled but simply for amusement. Words and even sentences were "deciphered" with meanings made up to deliver funny messages.

Mojibake can also occur between what appears to be the same encodings. E.g. Windows and Macintosh both use the name ISO-8859-1 for an encoding. However, each system includes extra characters in their encoding (characters not included in the character set ISO-8859-1), and these are not compatible across the systems. Many people are unaware of these extra characters and use them in websites, e-mails, blogs, and so on as common characters, and as a result, mojibake occurs. One could say that the problem here really is one of inadequate naming though, as these two encodings in fact are slightly different.

Resolutions

The difficulty of resolving an instance of mojibake varies depending on the application within which it occurs and the causes of it. Two of the most common applications in which mojibake may occur are web browsers and word processors. Modern browsers and word processors often support a wide array of character encodings. Browsers would often allow a user to change its rendering engine's encoding setting on the fly, while word processors would allow the user to select the appropriate encoding when opening a file. It may take some trial and error for users to find the correct encoding.

The problem gets more complicated when it occurs in an application that normally does not support a wide range of character encoding, such as in a non-Unicode computer game. In this case, the user must change the operating system's encoding settings to match that of the game. However, changing the system-wide encoding settings can also cause Mojibake in pre-existing applications. In Windows XP or later, a user also has the option to use Microsoft AppLocale, an application that allows the changing of per-application locale settings. Even so, changing the operating system encoding settings is not possible on earlier operating systems such as Windows 98; to resolve this issue on earlier operating systems, a user would have to use third party font rendering applications.

Problems in specific languages

Mojibake rarely happens in English, since most Encodings agree with ASCII on the encoding of the English alphabet.

In Japanese, the phenomenon is as mentioned called mojibake 文字化け.

In Chinese, this phenomenon is called luanma simplified Chinese: 乱码; traditional Chinese: 亂碼; pinyin: luànmǎ; lit. 'haphazard code'.

Users of Central and Eastern European languages can also be affected. Because most computers were not connected to any network, during the mid- to late 1980s there were different character encodings for every language with diacritical characters.

File:Letter to Russia with krokozyabry.jpg
Handwritten krakozyabry corrected by a postal employee.

In Russian, mojibake is called krakozyabry (крокозя́бры). During the 1990s, several different encodings for the Cyrillic alphabet (Unix KOI8-R, Windows CP-1251, DOS 866, standard ISO 8859-5, and several others) competed. Poorly configured servers and lack of compatibility made garbled text a common and frustrating experience. Many e-mail servers stripped the 8th bit from the characters as permitted by earlier standards (which renders UTF-8 unreadable, as well as all of the above). For this reason many Cyrillic users resorted to Volapuk encoding. An even more frustrating problem emerged in the early 2000s, when the popular e-mail client Microsoft Outlook started to replace correctly entered Cyrillic characters with question marks when replying to or forwarding messages created in competing encodings.

In Bulgarian, mojibake is often called maymunitsa (маймуница), meaning monkey's alphabet.

In Poland every company selling early DOS computers created its own encoding, and simply reprogrammed the EPROMs of the video cards (typically CGA, EGA or Hercules) with the according character shapes. Additionally, users of then-popular home computers (such as the Amiga and Atari ST) invented their own encodings, incompatible with international standards (ISO 8859-2), vendor standards (IBM CP852, Windows CP1250) and locally agreed-upon PC/MS DOS standards (Mazovia). The situation began to improve when, after pressure from academic and user groups, ISO 8859-2 succeeded as the "Internet standard" with limited support of the dominant vendors' software (today largely replaced by Unicode). With the numerous problems caused by the variety of encodings, even today some users tend to refer to Polish diacritical characters as krzaki ("bushes").

In Nordic languages such as Finnish, Swedish, Danish and Norwegian, mojibake is not uncommon, but isn't much of a problem and is more of an annoyance. E.g. Finnish and Swedish use the English alphabet and three more characters (åäö), and typically these three are the only ones that become corrupted. Being vowels these are rarely repeated and it is usually obvious when one character gets corrupted, e.g. the second letter in "kärlek" (kärlek). This way, even though the reader has to guess between å, ä and ö, almost all texts remain perfectly readable. In both Norwegian and Danish, the three letters that set off the phenomenon are æ, ø and å.

See also