またしょうもない文字化け話。
Unicodeが一般的になる前、日本語のマニュアルは当然Shift_JISで作ることが多かった。
WindowsだけではなくMacもそうだった。
一方、翻訳するもとになる英語のマニュアルはWindows 1252でエンコードされていた。

Jefferson quote
ふつう英語はASCIIで書かれていると思われているが、実際にはISO 8859-1で書かれている、と思われているが、実際にはWindows 1252で書かれている。

ASCIIは1文字1バイトであるが0x00~0x7Fの領域しか使っていない。
よって7ビットコードである。

ISO 8859-1は0x80~0xFFのうち0x80~0x9Fを除いた0xA0~0x9Fも使えるようにした文字コードで、ここにフランス語やスペイン語のアクセント記号の付いた字やドイツ語のウムラウトのついた字が入っている。
じゃあヨーロッパの人しか使わないのかと言えばアメリカの人もバンバン使う。
0xA9の著作権の©とか0xAEの登録商標®が入っている。

しかし、ISO 8859-1にも入っていない字で欧米人が使う字が結構あって、これを0x80~0x9Fに詰め込んだWindows 1252が実際には使われていた。
一番バンバン使われるのが0x91の‘,0x92の’、0x93の“、0x94の”のような言うところの方向のある引用符である。

まとめると、Windows 1252はISO 8859-1のスーパーセットであって、ISO 8859-1はASCIIのスーパーセットである。
ASCIIにある字は、ISO 8859-1にも、Windows 1252にもある。それはabcや123の他に、直立した引用符の'とか"である。
ISO 8859-1にある字はすべてWindows 1252にあるが、ASCIIにない字がある。それは0xA0~0xFFの範囲であって、0xA9の著作権の©とか0xAEの登録商標®がこの範囲に入る。
Windows 1252にあるが、ISO 8859-1にも(当然ASCIIにも)ない字がある。それは0x80~0x1Fの範囲であって、0x91の‘,0x92の’、0x93の“、0x94の”のような文字である。

このような、0x80以上の非ASCII部分は欧米でも「8ビット目が立ったコードはチェック用に使う」という合意が形成されていたりするので問題になる。
「ハイアスキー(high ASCII)」とか「ハイアンシー(high ANSI)」と言ったりする。

Shift_JISはASCII部分はASCIIと共通である。
(変な文章だけど分かるよね・・・)
一方、0x81~0x9Fおよび0xE0~0xEFが漢字(全角文字)の1バイト目、0xA1~0xDFが半角カナに使われている。
これはWindows 1252およびISO 8859-1と丸かぶりである。
よって、Windows 1252およびISO 8859-1とShift_JISは同時に使えない。

方向のある引用符はMicrosoft Wordなどのワードプロセッサーで作文していると勝手に入力される。
ASCIIの直立した引用符で"quoted phrase"と書いたつもりでも、オートコレクト(自動校正機能)によって“quoted phrase”のように方向が付く。
これをスマートクォートと言っていた。

問題は、書名などの翻訳せずに残すところにもバンバンこのハイアスキーが入ってくることだ。
いい例が「Programmer’s Guide」であって、これをShift_JISにすると「Programmer痴 Guide」になる。

’が0x92なので、s(ASCIIの小文字のエス、0x73)と合体して、0x9273になるが、これがShift_JISで思いっきり痴漢の痴になっているのである。

最初プログラマーとかどうせ痴れ者が多いんだろうとかそういう偏見なのかと思ったがそんなわけはなくて、考えたら「だれだれの」という意味のアポストロフィsが全部痴漢の痴に化けるわけだ。
「User痴 Guide」とか、「Developer痴 Guide」とか、全部痴漢の痴になっている。

逆に言うと、痴漢の痴を見たらWindows 1252由来の問題が多いということになる。
昔の「Windows Help」とかはこれが問題になった。

あと、Windows 1252を使っているのに「自分はISO 8859-1を使っている」あるいは「ASCIIを使っている」と思い込んでいるガイジンの人が多いのも困った。
これはまだ解決してないと思う。

と、長々書いたが、Unicodeの世の中になってすっかり問題が解決した。
ながながと書いたがまったくのムダ知識である。



※スミマセンまた12時をまたいで時をかけるブログになってしまいました・・・。