プロが教える店舗&オフィスのセキュリティ対策術

掲示板やブログを利用したりしてコメントがあると、メールで知らせてくれますよね。
するとたまに、見事に文字化けしてて読めないときがあります。

共通しているのが、次の3つの連続という点です。

・普段使わないような画数の多い漢字
・↑に混じって意味不明の半角カタカナ
・?

カタカナはまぁ置いておきまして、どうしてあんなに複雑な漢字に変換されてしまうのか、いつも不思議に思います。どうして複雑な漢字ばかりなのでしょうか。
また、文字化けが起こるしくみについても簡単に説明していただけますと嬉しいです。

A 回答 (4件)

こんにちは


PCの中では文字は全てコードで扱われます。日本ではJISコード体系が良く使われます。それで全角の1と半角の1はコードが違います。これは中々難しい話なのですが、半角の数字やローマ字は1バイトコード、全角の漢字、ひらかな、カタカナ、数字は皆2バイトコードです。

半角数字は1バイトですから8ビット、2桁の英数字で表されます。たとえば半角の1が01というコードだったとします(実際は違いますが便宜上)。それで2が02だとしますよね。それに対して全角の文字はすべて4桁の英数字なんですよ。たとえば1はAA01(これも実際とは違います)というふうに。それでこの文字のほかにファンクションコードと言って全角半角の切り替えやそういうプログラムに指示を与える2バイトコードも存在します。

これがですね、なにかのエラー飛んでしまったりすると、本来半角で表すべき文字も全角で読まれてしまうのです。

たとえば半角数字で15を表すコードが0105だとしますよねところがPCがそれを全角だと判断したら「0105」という2バイトコードとして読まれこのコードが割り振られている全角の文字が表示されるということです。これが文字化けの仕組みです。化けた文字に画数の多い文字があるのはコード体系がそうなっているからです。

つまり全角と半角が入り混じると色んなエラーが起こりやすく、文字コードがずれて化けるのです。
    • good
    • 0
この回答へのお礼

なるほど!
これから入力するとき半角と全角混ぜないように気をつけてみます。
ありがとうございました。

お礼日時:2011/06/18 20:43

 これは、以前ブログの種にしたことがある。

(^^ゞ

 これは、何故生じるかというと、文字コード表の違いである。
 パソコンはありとあらゆるものを数字でやりとりしているのだが、これを人間の判る言葉に置き換えるときに文字コード表を使う。
 我々が普段使う文字コード表はシフトJISなのだが、これがアルファベットを基準とした欧米の標準とは違っている。
 欧米の標準の文字コード表では、「92」は「'」だが、シフトJISの表では空欄である。そして「73」は「s」である。しかし日本語化されたソフトは「's」と並ぶと「9273」と判断してしまう。「9273」はシフトJISでは「痴」なのである。
 そんな訳で、日本語を考慮していない外国のデータを、日本語表示のソフトで読むと、以下のようになる。

本来の表記    「I'm not」「you don't」 「it's」
変化した表記   「I知 not」「you don稚」「it痴」

参考URL:http://hyounentei.blog32.fc2.com/blog-entry-285. …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/06/18 20:42

この文字はjisコードの何番の何番という風に分類されています。


分かりやすくいえば0000の4番とか。
常用文字はどんなフォントや機種でも同じ場所にあります。
で、特殊記号などは、おそらく、普段まず使わない文字の場所に作るために訳わからん文字にバケるのではないかと思う今日この頃。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/06/18 20:42

漢字の文字数(登録数)が圧倒的に多いからです。



文字は文字コードという状態で授受されます。
その文字のコードに対応してない端末で
文字を見ると対応している文字コードの文だとして認識され
違う文字が出てくる。
それが文字化けの正体です。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/06/18 20:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!