English Mojibake in English texts generally occurs in punctuation, such as
em dashes (—),
en dashes (–), and
curly quotes (“, ”, ‘, ’), but rarely in character text, since most encodings agree with
ASCII on the encoding of the
English alphabet. For example, the
pound sign £ will appear as
£ if it was encoded by the sender as
UTF-8 but interpreted by the recipient as one of the Western European encodings (
CP1252 or
ISO 8859-1). If iterated using CP1252, this can lead to £, £, £, £, and so on. Similarly, the
right single quotation mark (’), when encoded in UTF-8 and decoded using Windows-1252, becomes ’, ’, ’, and so on. In older eras, some computers had vendor-specific encodings which caused mismatch also for English text.
Commodore brand
8-bit computers used
PETSCII encoding, particularly notable for inverting the upper and lower case compared to standard
ASCII. PETSCII printers worked fine on other computers of the era, but inverted the case of all letters. IBM
mainframes use the
EBCDIC encoding which does not match ASCII at all.
Other Western European languages The alphabets of the
North Germanic languages,
Catalan,
Romanian,
Finnish,
French,
German,
Italian,
Portuguese and
Spanish are all extensions of the
Latin alphabet. The additional characters are typically the ones that become corrupted, making texts only mildly unreadable with mojibake: •
å,
ä,
ö in
Finnish and
Swedish (š and ž are present in some Finnish loanwords, é marginally in Swedish, mainly also in loanwords) • à, ç, è, é, ï, í, ò, ó, ú, ü in
Catalan •
æ,
ø, å in
Norwegian and
Danish as well as optional acute accents on é, ǿ etc for disambiguation • á, é, ó,
ij, è, ë, ï in
Dutch • ä, ö,
ü, and
ß in
German • á,
ð,
í,
ó,
ú,
ý, æ, ø in
Faroese • á, ð,
é, í, ó, ú, ý,
þ, æ, ö in
Icelandic • à, â, ç, è, é, ë, ê, ï, î, ô, ù, û, ü, ÿ, æ, œ in
French • à, è, é, ì, ò, ù in
Italian • á, é, í,
ñ, ó, ú, ü,
¡, ¿ in
Spanish • à, á, â, ã, ç, é, ê, í, ó, ô, õ, ú in
Portuguese (
ü no longer used) • á, é, í, ó, ú in
Irish • à, è, ì, ò, ù in
Scottish Gaelic • ă, â, î, ș, ț in
Romanian •
£ in
British English (æ and œ are rarely used, as are é and ê in some loanwords) ...and their uppercase counterparts, if applicable. These are languages for which the
ISO 8859-1 character set (also known as
Latin 1 or
Western) has been in use. However, ISO 8859-1 has been obsoleted by two competing standards, the backward compatible
Windows-1252, and the slightly altered
ISO 8859-15. Both add the
Euro sign € and the French œ, but otherwise any confusion of these three character sets does not create mojibake in these languages. Furthermore, it is always safe to interpret ISO 8859-1 as Windows-1252, and fairly safe to interpret it as ISO 8859-15, in particular with respect to the Euro sign, which replaces the rarely used
currency sign (¤). However, with the advent of
UTF-8, mojibake has become more common in certain scenarios, e.g. exchange of text files between
UNIX and
Windows computers, due to UTF-8's incompatibility with Latin-1 and Windows-1252. But UTF-8 can be directly recognised by a simple algorithm, so that well-written software should be able to avoid mixing UTF-8 up with other encodings, so this was most common when many had software not supporting UTF-8. Most of these languages were supported by MS-DOS default CP437 and other machine default encodings, except ASCII, so problems when buying an operating system version were less common. Windows and MS-DOS are not compatible, however. In Swedish, Norwegian, Danish and German, vowels are rarely repeated, and it is usually obvious when one character gets corrupted, e.g. the second letter in the Swedish word ("love") when it is encoded in UTF-8 but decoded in Western, producing kärlek, or in German, which becomes für. This way, even though the reader has to guess what the original letter is, almost all texts remain legible. Finnish, on the other hand, frequently uses repeating vowels in words like '''' ("wedding night") which can make corrupted text very hard to read (e.g. hääyö appears as hääyö). Icelandic has ten possibly confounding characters, and Faroese has eight, making many words almost completely unintelligible when corrupted (e.g. Icelandic , "outstanding hospitality", appears as þjóðlöð). In German, '
("letter salad") is a common term for this phenomenon, in Spanish, ' (literally "deformation") is used, and in Portuguese, '''' (literally "deformatting") is used. Some users transliterate their writing when using a computer, either by omitting the problematic diacritics, or by using digraph replacements (, , , , etc.). Thus, an author might write "ueber" instead of "über", which is standard practice in German when
umlauts are not available. The latter practice seems to be better tolerated in the German language sphere than in the
Nordic countries. For example, in Norwegian, digraphs are associated with archaic Danish, and may be used jokingly. However, digraphs are useful in communication with other parts of the world. As an example, the Norwegian football player
Ole Gunnar Solskjær had his last name spelled "SOLSKJAER" on his uniform when he played for
Manchester United. An artifact of
UTF-8 misinterpreted as
ISO 8859-1, being rendered as Ring meg nå, was seen in 2014 in an SMS scam targeting Norway. The same problem occurs also in Romanian, see these examples:
Central and Eastern European 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 (see
ISO/IEC 8859 and
KOI-8), often also varying by operating system.
Hungarian In
Hungarian, the phenomenon is referred to as
betűszemét, meaning "letter garbage". Hungarian has been particularly susceptible as it contains the accented letters á, é, í, ó, ú, ö, ü (all present in the Latin-1 character set), plus the two characters
ő and
ű which are not in Latin-1. These two characters can be correctly encoded in Latin-2, Windows-1250, and Unicode. However, before Unicode became common in e-mail clients, e-mails containing Hungarian text often had the letters ő and ű corrupted, sometimes to the point of unrecognizability. It is common to respond to a corrupted e-mail with the nonsense phrase
"Árvíztűrő tükörfúrógép" (literally "Flood-resistant mirror-drilling machine") which contains all accented characters used in Hungarian.
Examples Polish Prior to the creation of
ISO 8859-2 in 1987, users of various computing platforms used their own
character encodings such as
AmigaPL on Amiga, Atari Club on Atari ST and Masovia, IBM
CP852,
Mazovia and
Windows CP1250 on IBM PCs. Polish companies selling early
DOS computers created their own mutually-incompatible ways to encode Polish characters and simply reprogrammed the
EPROMs of the video cards (typically
CGA,
EGA, or
Hercules) to provide
hardware code pages with the needed glyphs for Polish arbitrarily located with no reference whatsoever to where other computer sellers had placed them. 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 (, lit. "little shrubs").
Russian and other Cyrillic-based alphabets Mojibake is colloquially called ( ) in
Russian, which was and remains complicated by several systems for encoding
Cyrillic. The
Soviet Union and early
Russian Federation developed
KOI encodings (, , which translates to "Code for Information Exchange"). This began with Cyrillic-only 7-bit
KOI7, based on
ASCII but with Latin and some other characters replaced with Cyrillic letters. Then came 8-bit
KOI8 encoding that is an
ASCII extension which encodes Cyrillic letters only with high-bit set octets corresponding to 7-bit codes from KOI7. It is for this reason that KOI8 text, even Russian, remains partially readable after stripping the eighth bit, which was considered as a major advantage in the age of
8BITMIME-unaware email systems. For example, the words "" (), when encoded in KOI8 and passed through the high bit stripping process, end up being rendered as "[KOLA RUSSKOGO qZYKA". Eventually, KOI8 gained different flavors for Russian and Bulgarian (
KOI8-R), Ukrainian (
KOI8-U),
Belarusian (KOI8-RU), and even
Tajik (KOI8-T). Meanwhile, in the West,
Code page 866 supported
Ukrainian and
Belarusian, as well as Russian and
Bulgarian in
MS-DOS. For
Microsoft Windows,
Code Page 1251 added support for
Serbian and
other Slavic variants of Cyrillic. Most recently, the
Unicode encoding includes
code points for virtually all characters in all languages, including all Cyrillic characters. Before Unicode, it was necessary to match text encoding with a font using the same encoding system; failure to do this produced unreadable
gibberish whose specific appearance varied depending on the exact combination of text and font encoding. For example, attempting to view non-Unicode Cyrillic text using a font that is limited to the Latin alphabet, or using the default ("Western") encoding, typically results in text that consists almost entirely of capitalized vowels with diacritical marks (e.g. KOI8 "" (, library) becomes "âÉÂÌÉÏÔÅËÁ", while "Школа русского языка" (, Russian-language school) becomes "ûËÏÌÁ ÒÕÓÓËÏÇÏ ÑÚÙËÁ"). Using Code Page 1251 to view text in KOI8, or vice versa, results in garbled text that consists mostly of capital letters (KOI8 and Code Page 1251 share the same ASCII region, but KOI8 has uppercase letters in the region where Code Page 1251 has lowercase, and vice versa). During the early years of the Russian sector of the World Wide Web, both KOI8 and Code Page 1251 were common. Nearly all websites now use Unicode, but an estimated 0.35% of all web pages worldwideall languages includedare still encoded in Code Page 1251, while less than 0.003% of sites are still encoded in KOI8-R. Though the HTML standard includes the ability to specify the encoding for any given web page in its source, this is sometimes neglected, forcing the user to switch encodings in the browser manually. In Bulgarian, mojibake is often called (), meaning "monkey's [alphabet]". In
Serbian, it is called (), meaning "
trash". Unlike the former USSR, South Slavs never used something like KOI8, and Code Page 1251 was the dominant Cyrillic encoding before Unicode; therefore, these languages experienced fewer encoding incompatibility troubles than Russian. In the 1980s, Bulgarian computers used their own
MIK encoding, which is superficially similar to, although incompatible with, CP866.
Yugoslav languages Croatian,
Bosnian,
Serbian (the seceding varieties of
Serbo-Croatian language) and
Slovenian add to the basic Latin alphabet the letters š, đ, č, ć, ž, and their capital counterparts Š, Đ, Č, Ć, Ž (only č/Č, š/Š and ž/Ž are officially used in Slovenian, although others are used when needed, mostly in foreign names). All of these letters are defined in
Latin-2 and
Windows-1250, while only some (š, Š, ž, Ž, Đ) exist in the usual OS-default
Windows-1252, and are there because of some other languages. Although Mojibake can occur with any of these characters, the letters that are not included in Windows-1252 are much more prone to errors. Thus, even nowadays, "šđčćž ŠĐČĆŽ" is often displayed as "šðèæž ŠÐÈÆŽ", although ð, È, and Æ are never used in Slavic languages. When confined to basic ASCII (most user names, for example), common replacements are: š→s, đ→dj, č→c, ć→c, ž→z (capital forms analogously, with Đ→Dj or Đ→DJ depending on word case). All of these replacements introduce ambiguities, so reconstructing the original from such a form is usually done manually if required. The
Windows-1252 encoding is important because the English versions of the Windows operating system are most widespread, not localized ones. The reasons for this include a relatively small and fragmented market, increasing the price of high quality localization, a high degree of software piracy (in turn caused by high price of software compared to income), which discourages localization efforts, and people preferring English versions of Windows and other software. The drive to
differentiate Croatian from Serbian, Bosnian from Croatian and Serbian, and now even
Montenegrin from the other three creates many problems. There are many different localizations, using different standards and of different quality. There are no common translations for the vast amount of computer terminology originating in English. In the end, people use English loanwords ("kompjuter" for "computer", "kompajlirati" for "compile," etc.), and if they are unaccustomed to the translated terms, they may not understand what some option in a menu is supposed to do based on the translated phrase. Therefore, people who understand English, as well as those who are accustomed to English terminology (who are most, because English terminology is also mostly taught in schools because of these problems) regularly choose the original English versions of non-specialist software. When Cyrillic script is used (for
Macedonian and partially
Serbian), the problem is similar to
other Cyrillic-based scripts. Newer versions of English Windows allow the
code page to be changed (older versions require special English versions with this support), but this setting can be and often was incorrectly set. For example, Windows 98 and Windows Me can be set to most non-right-to-left
single-byte code pages including 1250, but only at install time.
Asian encodings Another type of mojibake occurs when text encoded in a single-byte encoding is erroneously parsed in a multi-byte encoding, such as one of the encodings for
East Asian languages. With this kind of mojibake more than one (typically two) characters are corrupted at once. For example, if the Swedish word is encoded in Windows-1252 but decoded using GBK, it will appear as "k鋜lek", where "" is parsed as "鋜". Compared to the above mojibake, this is harder to read, since letters unrelated to the problematic å, ä or ö are missing, and is especially problematic for short words starting with å, ä or ö (e.g. "än" becomes "鋘"). Since two letters are combined, the mojibake also seems more random (over 50 variants compared to the normal three, not counting the rarer capitals). In some rare cases, an entire text string which happens to include a pattern of particular word lengths, such as the sentence "
Bush hid the facts", may be misinterpreted.
Vietnamese In
Vietnamese, the phenomenon is called
chữ ma (
Hán–Nôm: , "ghost characters") or
loạn mã (from Chinese 乱码,
luànmǎ). It can occur when a computer tries to decode text encoded in UTF-8 as
Windows-1258, TCVN3 or VNI. In Vietnam,
chữ ma was commonly seen on computers that ran pre-Vista versions of Windows or cheap mobile phones.
Japanese In
Japan, mojibake is especially problematic as there are many different Japanese text encodings. Alongside Unicode encodings (UTF-8 and UTF-16), there are other standard encodings, such as
Shift-JIS (Windows machines) and
EUC-JP (UNIX systems). Even to this day, mojibake is often encountered by both Japanese and non-Japanese people when attempting to run software written for the Japanese market.
Chinese In
Chinese, the same phenomenon is called
Luàn mǎ (
Pinyin,
Simplified Chinese ,
Traditional Chinese , meaning 'chaotic code'), and can occur when computerised text is encoded in one
Chinese character encoding but is displayed using the wrong encoding. When this occurs, it is often possible to fix the issue by switching the character encoding without loss of data. The situation is complicated because of the existence of several Chinese character encoding systems in use, the most common ones being:
Unicode,
Big5, and
Guobiao (with several backward-compatible versions), and the possibility of Chinese characters being encoded using Japanese encoding. It is relatively easy to identify the original encoding when
luànmǎ occurs in Guobiao encodings: An additional problem in Chinese occurs when rare or antiquated characters, many of which are still used in personal or place names, do not exist in some encodings. Examples of this are: • The
Big5 encoding's lack of the "煊" (
xuān) in the name of
Taiwanese politician
Wang Chien-shien (), the "堃" (
kūn) in the name of
Yu Shyi-kun (), and the "喆" (
zhé) in the name of singer
David Tao (), •
GB 2312's lack of the "镕" (
róng) in ex-PRC Premier
Zhu Rongji (), and •
GBK's lack of the
copyright symbol "©". Newspapers have dealt with missing characters in various ways, including using image editing software to synthesize them by combining other radicals and characters; using a picture of the personalities (in the case of people's names), or simply substituting homophones in the hope that readers would be able to make the correct inference.
Indic text A similar effect can occur in
Brahmic or Indic scripts of
South Asia, used in such
Indo-Aryan or Indic languages as
Hindustani (Hindi-Urdu),
Bengali,
Punjabi,
Marathi, and others, even if the character set employed is properly recognized by the application. This is because, in many Indic scripts, the rules by which individual letter symbols combine to create symbols for syllables may not be properly understood by a computer missing the appropriate software, even if the glyphs for the individual letter forms are available. One example of this is the old
Wikipedia logo, which attempts to show the character analogous to "wi" (the first syllable of "Wikipedia") on each of many puzzle pieces. The puzzle piece meant to bear the
Devanagari character for "wi" instead used to display the "wa" character followed by an unpaired "i"
modifier vowel, easily recognizable as mojibake generated by a computer not configured to display Indic text. The logo as redesigned has fixed these errors. The idea of Plain Text requires the operating system to provide a font to display Unicode codes. This font is different from OS to OS for Singhala and it makes orthographically incorrect glyphs for some letters (syllables) across all operating systems. For instance, the 'reph', the short form for 'r' is a diacritic that normally goes on top of a plain letter. However, it is wrong to go on top of some letters like 'ya' or 'la' in specific contexts. For Sanskritic words or names inherited by modern languages, such as कार्य, IAST:
kārya, or आर्या, IAST:
āryā, it is apt to put it on top of these letters. By contrast, for similar sounds in modern languages which result from their specific rules, it is not put on top, such as the word करणाऱ्या, IAST:
karaṇāryā, a stem form of the common word करणारा/री, IAST:
karaṇārā/rī, in the
Marathi language. But it happens in most operating systems. This appears to be a fault of internal programming of the fonts. In Mac OS and iOS, the muurdhaja l (dark l) and 'u' combination and its long form both yield wrong shapes. Some Indic and Indic-derived scripts, most notably
Lao, were not officially supported by
Windows XP until the release of
Vista. However, various sites have made free-to-download fonts.
Burmese Due to Western sanctions and the late arrival of Burmese language support in computers, In the Zawgyi font, some
codepoints for Burmese script were implemented as specified in
Unicode, but others were not. The Unicode Consortium refers to this as
ad hoc font encodings. With the advent of mobile phones, mobile vendors such as Samsung and Huawei simply replaced the Unicode-compliant system fonts with Zawgyi versions. Myanmar government designated 1 October 2019 as "U-Day" to officially switch to Unicode.
African languages In certain
writing systems of Africa, unencoded text is unreadable. Texts that may produce mojibake include those from the
Horn of Africa such as the
Ge'ez script in
Ethiopia and
Eritrea, used for
Amharic,
Tigre, and other languages, and the
Somali language, which employs the
Osmanya alphabet. In
Southern Africa, the
Mwangwego alphabet is used to write languages of
Malawi and the
Mandombe alphabet was created for the
Democratic Republic of the Congo, but these are not generally supported. Various other writing systems native to
West Africa present similar problems, such as the
N'Ko alphabet, used for
Manding languages in
Guinea, and the
Vai syllabary, used in
Liberia.
Arabic Another affected language is
Arabic (see
below), in which text becomes completely unreadable when the encodings do not match.
Examples The examples in this article do not have UTF-8 as browser setting, because UTF-8 is easily recognisable, so if a browser supports UTF-8 it should recognise it automatically, and not try to interpret something else as UTF-8. ==See also==