2種類の波ダッシュ(~)、3種類の円マーク(¥)
Windows 7が発売されて1年以上が経ち、その評価の高さから、だんだんと普及してきていると思います。
ちょっと仕事で調べ物をしているときに見つけた、Windowsでの日本語の扱いについて書こうと思います。
まず、「え~い」とか「1~3」というように使われる「波ダッシュ(~)」。これが2種類あることに気づいている方がいると思います。
具体的には「上がって下がる」もの(
)と「下がって上がる」もの(
)です。
この二つのうち、どちらかは「え~い」などに使う「波ダッシュ」ではありません。さあ、どちらでしょう。
間違っているのは「上がって下がる」ほう(
)。「下がって上がる」ほう(
)が「正しい『波ダッシュ』」となります。
しかし、一般的な日本人が書く波ダッシュは「上がって下がる」ほうですよね。しかも、Windows 7で「から」を変換すると出てくるのは「上がって下がる」ほう(
)。
なぜこのような状態になっているのでしょう。
それは、Windows XPとVistaとの間で「文字コード」が変更されたことと、その文字コードの仕様に誤りがある上、マイクロソフトの解釈が他の多くのITメーカーとずれていることが原因です。
「文字コード」とは、コンピューターで文字を表現するときの規格。それには様々なものがありますが、Windows XPまででは、それまでコンシューマー向けOSで一般的だった「Shift_JIS」という文字コードを使用していました。
Windows Vistaと7では「Unicode」という文字コードを使っています。これはひとつの文字コードに世界中のすべての文字を詰め込むことを目指した規格で、Windowsに限らず多くの製品が標準でUnicodeを使用する流れになってきています。
壮大な目標のもとに策定されたUnicodeですが、様々な問題を抱えています。そのひとつが、日本語に使われる「波ダッシュ」の問題です。
Unicodeに波ダッシュを登録する際、縦書き時の形(左から右)を左に90度回転させて見てしまったのです。これは恐らく、アルファベットを縦書きするときに右に90度回転させて書くため、それと同じ見方をしてしまったのでしょう。
これは日本人から見ても、Shift_JISの波ダッシュ(
)から見ても違和感のあるものでした。また、Shift_JISには存在しない「全角チルダ」(チルダ(~)の全角版)が本来の波ダッシュの形と同じであるため混乱の元になったのです。
そのためなのか、WindowsではShift_JISの波ダッシュ(
)をUnicodeに置き換えたとき、波ダッシュ(
)ではなく全角チルダ(
)に置き換えられます。
これはWindowsを作ったマイクロソフトの知識不足なのかと思われそうですが、その可能性は低いです。
Windows Vistaの標準フォント「メイリオ」では、波ダッシュが本来の「上がって下がる」もの(
)で表示されるのです。わざわざ見た目を補正してくれているにも関わらず、変換はずれているんですね。
ところがWindows以外の多くのアプリケーションやOSでは正しい変換をするため、そのずれから文字化けを起こすことがあります。
また、筆者の経験だと、Unicodeに対応したケータイでも、実際にはShift_JISに存在する文字しか対応していない(フォントがない)ことはよくあるのですが、auケータイのフルブラウザーなのかな?Unicodeの波ダッシュ自体に対応していないアプリケーションもあるようで、そこでも文字化けは発生します(「波ダッシュ」は旧来のShift_JISにも存在していたはずなのに…)。
そういうわけで、全角チルダ(
)と波ダッシュ(
)のどちらを使うべきか難しいところです…。
もうひとつ、円マーク(円記号)に関する問題。これはUnicode以前からあった問題がUnicode策定時に表面化しました。
Shift_JISでの円マークは「半角」と「全角」の2種類。しかしWindows Vistaや7ではもう1種類、半角の円マークが存在します。
まず、いわゆる半角英数・記号を定めた国際規格「ISO/IEC 646」で、「128ある文字のうち、決められた12個については各国で変更可能」というルールにより日本で「バックスラッシュ」が「円記号」に置き換えられたことによって、最初の「半角円記号」が生まれました。
しかし「バックスラッシュ」は、Windowsのフォルダーを区切る記号(「C:\Documents and Settings」の円マークですね)や、プログラム言語の制御文字などに使われたため、「円」や「バックスラッシュ」以外に特殊な意味を持ってしまったのです(なぜ各国で定義が異なる文字を制御文字にしたんでしょうか…)。
ひとつの文字コードに世界中のすべての文字を詰め込むことを目指したUnicodeでは、「バックスラッシュ」と「円記号」は別の文字として分離されることになりますが、単にバックスラッシュと円記号を変換してしまうと特殊な制御文字が置き換えられ、プログラムなどが正しく動作しなくなります。
そのためWindowsでは、「バックスラッシュ」と「円記号」は変換せず、かつ日本語版では「バックスラッシュ」を従来通り「円記号」の表示に置き換えることによって不都合を解消しています。
このような事情で「旧半角円記号」(バックスラッシュ)、「全角円記号」、「新半角円記号」の3つが存在してしまうわけですね。また、違和感や誤動作を避けるため、キーボードで半角円記号を入力すると、古いほうが出ます。
新円記号はUnicodeの比較的新しいバージョンで追加されたので、Windows XPでは表示すらできませんし、しばらくは古いほうと付き合うことになりそうです。
というわけで、波ダッシュの件は以前から知っていましたが、円マークの件は初めて知りました。普通に使う分には問題ないでしょうけど、プログラムなどを組むときには気をつけましょう。
ちなみにUnicode 6.0では「emoji」(特に日本の携帯電話で使われる絵文字)が追加されたそうです。領域が余ってるからって変な字を入れていくのもどうかとは思いますが…。日本でスマートフォンを使っても絵文字を入力できるようになりそうですね。
ちょっと仕事で調べ物をしているときに見つけた、Windowsでの日本語の扱いについて書こうと思います。
まず、「え~い」とか「1~3」というように使われる「波ダッシュ(~)」。これが2種類あることに気づいている方がいると思います。
具体的には「上がって下がる」もの(


この二つのうち、どちらかは「え~い」などに使う「波ダッシュ」ではありません。さあ、どちらでしょう。
間違っているのは「上がって下がる」ほう(


しかし、一般的な日本人が書く波ダッシュは「上がって下がる」ほうですよね。しかも、Windows 7で「から」を変換すると出てくるのは「上がって下がる」ほう(

なぜこのような状態になっているのでしょう。
それは、Windows XPとVistaとの間で「文字コード」が変更されたことと、その文字コードの仕様に誤りがある上、マイクロソフトの解釈が他の多くのITメーカーとずれていることが原因です。
「文字コード」とは、コンピューターで文字を表現するときの規格。それには様々なものがありますが、Windows XPまででは、それまでコンシューマー向けOSで一般的だった「Shift_JIS」という文字コードを使用していました。
Windows Vistaと7では「Unicode」という文字コードを使っています。これはひとつの文字コードに世界中のすべての文字を詰め込むことを目指した規格で、Windowsに限らず多くの製品が標準でUnicodeを使用する流れになってきています。
壮大な目標のもとに策定されたUnicodeですが、様々な問題を抱えています。そのひとつが、日本語に使われる「波ダッシュ」の問題です。
Unicodeに波ダッシュを登録する際、縦書き時の形(左から右)を左に90度回転させて見てしまったのです。これは恐らく、アルファベットを縦書きするときに右に90度回転させて書くため、それと同じ見方をしてしまったのでしょう。
これは日本人から見ても、Shift_JISの波ダッシュ(

そのためなのか、WindowsではShift_JISの波ダッシュ(



これはWindowsを作ったマイクロソフトの知識不足なのかと思われそうですが、その可能性は低いです。
Windows Vistaの標準フォント「メイリオ」では、波ダッシュが本来の「上がって下がる」もの(

ところがWindows以外の多くのアプリケーションやOSでは正しい変換をするため、そのずれから文字化けを起こすことがあります。
また、筆者の経験だと、Unicodeに対応したケータイでも、実際にはShift_JISに存在する文字しか対応していない(フォントがない)ことはよくあるのですが、auケータイのフルブラウザーなのかな?Unicodeの波ダッシュ自体に対応していないアプリケーションもあるようで、そこでも文字化けは発生します(「波ダッシュ」は旧来のShift_JISにも存在していたはずなのに…)。
そういうわけで、全角チルダ(


もうひとつ、円マーク(円記号)に関する問題。これはUnicode以前からあった問題がUnicode策定時に表面化しました。
Shift_JISでの円マークは「半角」と「全角」の2種類。しかしWindows Vistaや7ではもう1種類、半角の円マークが存在します。
まず、いわゆる半角英数・記号を定めた国際規格「ISO/IEC 646」で、「128ある文字のうち、決められた12個については各国で変更可能」というルールにより日本で「バックスラッシュ」が「円記号」に置き換えられたことによって、最初の「半角円記号」が生まれました。
しかし「バックスラッシュ」は、Windowsのフォルダーを区切る記号(「C:\Documents and Settings」の円マークですね)や、プログラム言語の制御文字などに使われたため、「円」や「バックスラッシュ」以外に特殊な意味を持ってしまったのです(なぜ各国で定義が異なる文字を制御文字にしたんでしょうか…)。
ひとつの文字コードに世界中のすべての文字を詰め込むことを目指したUnicodeでは、「バックスラッシュ」と「円記号」は別の文字として分離されることになりますが、単にバックスラッシュと円記号を変換してしまうと特殊な制御文字が置き換えられ、プログラムなどが正しく動作しなくなります。
そのためWindowsでは、「バックスラッシュ」と「円記号」は変換せず、かつ日本語版では「バックスラッシュ」を従来通り「円記号」の表示に置き換えることによって不都合を解消しています。
このような事情で「旧半角円記号」(バックスラッシュ)、「全角円記号」、「新半角円記号」の3つが存在してしまうわけですね。また、違和感や誤動作を避けるため、キーボードで半角円記号を入力すると、古いほうが出ます。
新円記号はUnicodeの比較的新しいバージョンで追加されたので、Windows XPでは表示すらできませんし、しばらくは古いほうと付き合うことになりそうです。
というわけで、波ダッシュの件は以前から知っていましたが、円マークの件は初めて知りました。普通に使う分には問題ないでしょうけど、プログラムなどを組むときには気をつけましょう。
ちなみにUnicode 6.0では「emoji」(特に日本の携帯電話で使われる絵文字)が追加されたそうです。領域が余ってるからって変な字を入れていくのもどうかとは思いますが…。日本でスマートフォンを使っても絵文字を入力できるようになりそうですね。
広告