機種依存文字の例
マーク 〇○◇□△▽☆●◆■▲▼★◎◯♂♀〒
括弧 ()〔〕[]{}〈〉《》「」『』【】‘’“”
矢印 →←↑↓⇒⇔
点 …‥、。,.・:;?!゛゜´`¨^ヽヾゝゞ〃°′″
省略文字 №㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻ⅠⅡⅢⅣⅤ≡∑∫∮√⊥∠∟⊿∵∩∪
単位 ¥$¢£%‰℃Å ㍉㎜㎝㎞㎎㎏㏄㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻
学術記号 +-±×÷=≒≠≦≧<≫∞∽∝∴∵∈∋⊆⊇⊂⊃∪∧∨¬∀∃∠⊥⌒∂∇≡√∫∬
修飾数字 ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳
ローマ数字 ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ
ギリシャ文字 ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨαβγδεζηθικλμ
ロシア文字 АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯаб
罫線 ─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂
その他 #&*@§※〓♯♭♪†‡¶仝々〆ー~ ̄_―‐∥|/\
コンピュータは、あらゆる文字を番号で扱っています。
人間には日本語文「ありがとう」に見えていても、コンピュータは番号の羅列「8341-836F-8345-8367」として表しています。
文字コードを16進であらわした場合。
元の文 | あ | り | が | と | う |
Shift-JI | 82A0 | 82E8 | 82AA | 82C6 | 82A4 |
EUC-J | A4A2 | A4EA | A4AC | A4C8 | A4A6 |
UTF-8 | E38182 | E3828A | E3818C | E381A8 | E38186 |
あらゆる文字には1つ1つ番号が割り当てられている/文字コードが異なれば、割り当てられている番号も異なります。
文字コードによって文字に割り当てられている番号が異なるため、誤った文字コードで表示すると、文字化けが起きます。
■環境依存文字(機種依存文字)がある原因
同じ番号なのに割り当てられている文字が異なることが原因です。そのような差があったために、環境によって見える文字が異なってしまう「環境依存文字」ができてしまいました。
■文字がどのように見えるかはフォント次第
同じ文字でもフォントによって字形が異なる
文字コードは、文字と番号を1対1で結びつける規格ですが、具体的にどう表示されるかはフォント次第です。
Windows Vista以降の標準フォントや、MacOS X 10.5以降で名称に「N」が付くヒラギノフォントでは、日本語の文字セットを定義した新しいJIS2004規格が採用され、漢字のしんにょうの左上にある点が1つではなく2つになりました。
その結果、同じ「辻」という漢字でも、フォントによって点が1つに見えたり2つに見えたりするようになりました。「辻」という漢字に割り当てられている番号は同じ(SHIFT-JISなら92D2、UTF-8ならE8BEBB)ですが、その番号に該当する文字としてフォントに収録されている字形が異なるために、見た目も変わるのです。
つまり、Mac上であってもWindowsと同じ仕様で文字が割り振られたフォントを使うなら、文字コードがSHIFT-JISでも上記で紹介したような文字化けは起こりません。例えば、MacOS X以降に標準搭載されているヒラギノフォントでは、Windowsと同じように表示できます。
このように、環境の差によって表示が異なってしまう可能性のある文字が「環境依存文字(機種依存文字)」です。しかし、近年のウェブでは文字コードの標準がUTF-8になっていますから、実はもはや気にしなくて良いとも言えます。
環境依存文字(機種依存文字)でも、文字コードがUTF-8なら問題ない
文字コードとしてUTF-8などのUnicodeを使えば概ね解決します。世界中の文字を共通の文字コードで表せるように作られたUnicodeでは、文字に割り当てられている番号が環境によって異なるということはありません。したがって、Unicodeを使って文字を書けば、閲覧環境を気にすることなく環境依存文字(機種依存文字)も表示可能です。
※Unicodeにはいくつかの種類があり、UTF-8やUTF-16はその一種です。HTML5では、文字コードとしてUTF-8の採用が推奨されています。