丸付き数字、括弧付き株、波線、そして横棒
変換や文字化けで困ったら確認すべき3つのチェック項目

1.文字化けをなおすために重要な予備知識

コンピュータではアルファベット、数字に漢字と、とても沢山の種類の文字を扱っています。

取扱対象となる文字の一群を文字集合と言い、
それら全ての文字を区別するために、文字毎に割り当てられる固有の番号を文字コードと言います。

アルファベットと一口に言っても、言語毎に様々なアルファベットの集合、すなわち様々な文字集合があります。これらを同時に扱うためには各言語のアルファベットごとに文字コードが重ならないように体系的に調整しなければなりません。そのように調整された体系をエンコーディングと言います。

もっとも簡単な文字化け – エンコーディングは正しいか

エンコーディングは世界にたった1つではなく、シフトJIS、EUC、UTF-8など沢山あります。そして、体系が違えば同じ文字に当てられる文字コードも別の数字になります。

あるエンコーディングで『犬』に『1000』が割当てられていて、別のエンコーディングでは『A』に『1000』が割当てられていたりするわけです。『犬』と『A』には何の対応関係もありませんから、誤ったエンコーディングで文字を表示すると意味不明な文章……にすらなりません。なぞの文字列、すなわち文字化けとなります。

Webブラウザやテキストエディタはある程度はエンコーディングを自動的に選択してくれます。とはいえ、自動選択は完璧ではないので文字化けすることがあるのです。これをなおすにはWebブラウザにせよテキストエディタにせよ、エンコーディングを別のものに変更して文字コードを再解釈させればOKです。

日本語であれば大抵は以下のいずれかが使われています。

  1. UTF-8
  2. Shift_JIS
  3. EUC-JP
  4. ISO-2022-JP

よくわからない時は順番に試せば大抵は文字化けがなおります。

2.Windowsで作られた文章を別の環境で開く – CP932と数値文字参照

非常に大雑把に言うと Windows では シフトJIS というエンコーディングで文書が保存されることが多いです。ここで問題となるのが シフトJIS です。

Windows で使われるエンコーディングは シフトJIS ではあるものの、取り扱える文字を増やすために拡張されています。これは最小の文字集合への シフトJIS では表せない文字を持つ事を意味し、それらを区別するために Windows の シフトJIS のことはWindows-31JとかMS932とかCP932と呼ばれます。

「おいおい、なんでより正確に呼ぶと名前が3つもでてくるんだよ!」という話ですが、詳細を説明すると長くなるので割愛します。とりあえずここでは シフトJIS を拡張して丸付き数字『①』、括弧付き株『㈱』などの文字を追加したエンコーディングを CP932 と呼びましょう。

他の OS では CP932 ではなく UTF-8 や EUC-JP などのエンコーディングをよく使います。ですから、この辺の事情を考慮しておかないと文字化けを起こします。しかし、この文字化けは上記の『もっとも簡単な文字化け』と同じ事で、同様に解決もできます。

ともするとハマるのは シフトJIS と CP932 の混同です。シフトJIS (CP932) で丸付き数字『①』を使うのは問題ないのですが、拡張されていない シフトJIS で丸付き数字『①』を表示しようとすると文字化けします……丸付き数字は拡張されていない シフトJIS には存在しませんので。いずれも シフトJIS と呼ばれているため、しばしば混同されます。

テキストエディタでHTMLを書いて、それをWebブラウザで表示させる場合、各々のソフトが シフトJIS を 拡張ありの CP932 として解釈するのか、それとも無しの シフトJIS とするのかは必ずしも明確ではありません。特に複数のOSで文書を扱う場合、テキストエディタによるエンコーディングの自動判定が入ると、丸付き数字『①』などが取り扱えない文字として面倒ごとになるかもしれません。

文書を取り扱う人全員がエンコーディングに精通していれば良いのですが、それが無理の場合は、以下のいずれかで対処できます。

  1. UTF-8 などを使う
  2. Windows では意識して (CP932) ではない シフトJIS を使う
  3. Windows でのみ文章を扱うことにして CP932 を使う
  4. HTMLなら数値文字参照を使う

HTMLではタグを表記するための < や > を使ってはいけません。その代わりに &lt; や &gt; を使います。 lt は less than 、 gt は greater than の省略で、このようなキーワードで特定の文字を示すものを文字実態参照 (エンティティ参照) と言います。あらゆる文字に文字実体参照が用意されているわけではなく、キーワードが指定されていないものは文字コードで文字を示します。これを数値文字参照と言います。
シフトJIS で HTML を書く時には丸付き数字『①』などは使えませんが、&#9312;と書けば、丸付き数字『①』を書いたことと同じです。大抵のブラウザでは意図通りの表示になるでしょう。

3.MacのUTF-8 – 濁点や鼻濁点はそれぞれ1文字

『が』という文字があります。『か』に『点々』がついたやつです。これがくせ者で、『が』と一文字で表してもよいし、『か』に『点々』で二文字として表してもよいのです。

『が』のように、濁点や鼻濁点付きの文字を一文字で表す形式を NFCお問い合わせについて

業務として技術コンサルティングやシステム設計・開発を行っております。
気になることがありましたらご相談下さい。
ご相談のみで完結する場合、コンサルティング費用の目安は
内容によりますが1時間で5千円〜1万円ていどです。
コンサルティングや開発を検討されるその前に、
まずはお気軽にコメントやメールでご連絡下さい。
※ご契約前のコメントやメールでのやりとりは無料です。

お問い合わせフォーム

お急ぎの場合など、ただちに業務対応が必要な場合は、こちらのお問い合わせフォームをご利用ください。かきしちカンパニーお客様窓口が直ちに対応いたします。
※窓口へのお問い合わせ、お見積もりは無料です。


お名前 (必須)

メールアドレス (必須)

題名

メッセージ本文 (必須)

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*