For example, most Japanese e-mails are in JIS encoding and web pages in Shift-JIS and yet mobile phones in Japan usually use some form of Extended Unix Code. If a program fails to determine the encoding scheme employed, it can cause mojibake (misconverted characters, literally "transformed characters" from the combination of moji 文字 meaning character and the stem of bakeru 化ける meaning to change form) and thus unreadable text on computers.
To understand how this state of affairs has arisen, it is useful to learn a little about the history of the encodings. The first encoding to become widely used was JIS X 0201, which is a single-byte encoding that only covers standard 7-bit ASCII characters with half-width katakana extensions. This was widely used in systems that were neither powerful enough nor had the storage to handle kanji (including DOS and old embedded equipment such as cash registers). The development of kanji encodings was the beginning of the split. Shift JIS was developed to be completely backward compatible with JIS X 0201, and thus is used in Windows (for backwards compatibility with DOS), and in much embedded electronic equipment.However, Shift JIS has the unfortunate property that it often breaks any parser that is not specifically designed to handle it. EUC, on the other hand, is not backwards compatible with JIS X 0201, but is handled much better by parsers that have been written for 7-bit ASCII (and thus EUC encodings are used on UNIX where much of the file-handling code was historically only written for English encodings). Further complications arise because the original Internet e-mail standards only support 7-bit transfer protocols. Thus JIS encoding was developed for sending and receiving e-mails.
Not all required characters may be included in a character set standard such as JIS, so gaiji (外字 "external characters") are sometimes used to supplement the character set. Gaiji may come in the form of external font packs, where normal characters have been replaced with new characters, or the new characters have been added to unused character positions. However, gaiji are not practical in Internet environments since the font set must be transferred with text to use the gaiji. As a result, such characters are written with similar or simpler characters in place, or the text may need to be written using a larger character set (such as Unicode) that supports the required character.
Unicode is supposed to solve all encoding problems in all languages of the world. For Japanese, the kanji characters have been unified with Chinese, that is a character considered to be the same in both Japanese and Chinese have been given one and the same code number in Unicode, even if they look a little different. This process, called Han unification, has caused controversy. The previous encodings in Japan, Taiwan, China and Korea have only handled one language and Unicode should handle all. There has been resistance against Unicode in Japan since it is said to be an American invention not Japanese. The handling of Kanji/Chinese have however been designed by a committee of Japanese/Korean/Taiwanese/Chinese people. Unicode is slowly growing because it is better supported by US made software, but still most homepages in Japanese use Shift-JIS. Wikipedia uses Unicode.
There are two main systems for the romanization of Japanese, known as Kunrei-shiki and Hepburn; "keyboard romaji" (also known as wāpuro rōmaji or "word processor romaji") generally allows a loose combination of both. IME implementations may even handle keys for letters unused in any romanization scheme, such as L, converting them to the most appropriate equivalent. With kana input, each key on the keyboard directly corresponds to one kana. The JIS keyboard system is national standard, but some people use alternatives like Oyayubi shift system.
Japanese has two directions of writing, called yokogaki and tategaki. The yokogaki style is the same as English, but the tategaki style involves columns of text written downwards, stacked right to left.
At present, handling of downward text is incomplete. For example, HTML has no support for tategaki and Japanese users must use HTML tables to simulate it. However, CSS level 3 includes a property "writing-mode" which can render tategaki when given the value "tb-rl" (i.e top to bottom, right to left). Word processors and DTP software have more complete support for it.