2008年5月25日日曜日

文字(番外編)

機種依存文字というものがある。丸数字を使うとwinでは正常に見えてもMacでは文字化けするという類のものである。その中にアラビア数字がある。機種依存文字なのだからwinで見ている限りは同じように表示されるのかと思っていたら、どうもそうでもないらしい。

マイミクさんに機種依存文字をHNを使っている人がいる。win版IE7proでは正常に表示されるのだがwin版Safariでは表示されない。使用されている文字はアラビア数字のIIである。IIが「*」で表示される。
Macの機種依存文字が使われているのかとも思ったがMacがないので確認しようがないが、どうもバグらしい。実際、win版Safariで表示されないページもかなりある。

で、調べているうちに興味を引いたのがこいつ。

文字化け?
「シリーズ名から探す」を見たら、機種のローマ数字が文字化けしてるんですが・・・。(OS X 10.3.9。FireFox)
#いろんなユーザーが見に来るんだから、変な機種依存文字なんて使うなよー。
あ。Safariで見たら、ちゃんと表示された。
なんか納得。(*¨)(*..)(*¨)(*..)うんうん

どうやら、スタイルシートの問題のようです。
font-family: "Lucida Grande";
と指定されているので、Gecko エンジンはうまくフォント置換できずに、ローマ数字のグリフのない書体が選ばれているんでしょう。
Safari は Cocoa なのでちゃんとフォント置換されて、ローマ数字の字形が出るようです。

知恵袋独特の機種依存文字
MacOS9.2.2でIE5.1.7とiCabでは全部正常に表示されています。
知恵袋では以前はこの手の機種依存文字はIE5.1.7でも文字化けしていましたが、昨年秋ごろからだったと思いますが正常に表示されるようになりました。
ただし、これを一般的なホームページで使うとMacOS9.2.2でIE5.1.7では文字化けします。
どうも知恵袋独特の機種依存文字の扱いがあるようですので、知恵袋で表示されてもあなたのホームページでMacで見て正常に表示されるかどうかは別の話になります。
他にもこれ(機種依存文字?)をマックで見るとどう見えますか?
このYahoo!知恵袋では「Unicode」という、比較的新しい文字体系を使用しています。そのため、今まで機種依存文字として扱われていた多くの文字を正しく処理することができます。

機種依存文字をユニコード一覧サイトがありやした。数値文字参照


大文字小文字で思い出したのが、MacのHFSフォーマットで「メロン」と「レモン」が区別されないなんて問題がありやした(懐かしィ~) で、どんなんだっけ?
葉子と裕子は仲が悪い。
同様に「裕子」と「葉子」
Macのファインダではファイルやフォルダの名前は大文字と小文字を区別をしない仕様になっています。たとえば「aaa」というフォルダと「AAA」というフォルダはおなじ「aaa」と認識されてしまいます。
次に、日本語の場合ですが、漢字は2バイト文字といって二つのアルファベットの組み合わせで表現されています。S‐JISコードでは「裕」は9774、「葉」は9754で、この下半分のASCIIコードではそれぞれT、tに当たります。違いはTの大文字と小文字だけですから、Macのファインダーでは同じ文字と認識されてしまうわけです。日本語の文章をを英語フォントに変換してみると何やら意味のない文字の羅列に見えますが、これが実際にコンピュータが認識している文字で、大文字小文字の違いだけになっていることを確認することができます。

「aaa」フォルダと「AAA」フォルダはwin-XPでも同様に区別されません。裕子と葉子は区別されます。Mac独自のバグ(仕様)だったようです。第8回 HFS、HFS Plusの基本的概念【中編】より

最後にフォントキャッシュを削除するまでがフォントの削除です!
先日、とあるフォントをFont Book.appからインストールしました。少し利用した後、もう必要がなくなったので、Font Book.appから「取り除く」を実行しました。
これで完了だと思っていたのですが、どうも様子が変なのです。OSを起動する度に、ゴミ箱に「Recovered File」(詳しくはコチラ)というフォルダと、その中に消したはずのフォントが復活してきます。「Recovered File」を削除しても全く効果がなく、再度フォントをインストール→「取り除く」を実行してもダメでした。
少々気味が悪かったので調べてみると、消したつもりのフォントは、まだ「フォントキャッシュ」に残っている事が原因のようでした。という訳で、Mac定番のメンテナンスツール「Onyx」の出番です。
Onyxでは、「クリーニング」→「フォント」からフォントキャッシュを削除する事が出来ます。

↑削除したい項目を選択して「実行」すれば、フォントキャッシュが削除される。

この操作後、「Recovered File」に悩む事がなくなりました。という訳で、フォントを完全に削除したい場合は、フォントキャッシュも削除した方が良さそうです。

0 件のコメント: