「円記号」の版間の差分
Windowsの場合、英語フォントにもバックスラッシュを正しく表示しないものがあるので修正 |
m r2.6.5) (ロボットによる 追加: cs:¥, he:¥ 変更: vi:¥ (định hướng) |
||
97行目: | 97行目: | ||
[[an:¥]] |
[[an:¥]] |
||
[[cs:¥]] |
|||
[[de:¥]] |
[[de:¥]] |
||
[[en:¥]] |
[[en:¥]] |
||
[[es:¥]] |
[[es:¥]] |
||
[[fr:¥]] |
[[fr:¥]] |
||
[[he:¥]] |
|||
[[it:¥]] |
[[it:¥]] |
||
[[kk:¥]] |
[[kk:¥]] |
||
107行目: | 109行目: | ||
[[ru:Символ иены]] |
[[ru:Символ иены]] |
||
[[sq:Simboli i Jenit]] |
[[sq:Simboli i Jenit]] |
||
[[vi:¥]] |
[[vi:¥ (định hướng)]] |
||
[[zh:¥]] |
[[zh:¥]] |
2011年1月11日 (火) 21:58時点における版
円記号(えんきごう)、つまり ¥ は、日本の通貨単位の円や中国の人民元 (Yuan) などを表す通貨記号である。金額を表す数値の前に置いて使用する。
この円記号は、コンピュータでの取り扱いに厄介な問題(円記号問題)を抱えた記号のひとつとして知られる。
円記号の由来
幕末の英米人の影響で、「円」は「en」ではなく「yen」と綴られることとなった(詳細は円 (通貨)を参照)。ドルの習慣に合わせて、その頭文字Yに同様の二重線を入れたものが「¥」の由来であるとする説が一般的である。
一方、中国では本来の単位である「圓」を、貨幣を表すにふさわしい・画数が少ない等の理由から、同音異字の「元」に代替した。双方、ピンインで「Yuan」と綴り、この頭文字に横線を1本加えた記号「¥」を漢字と同じ2バイト文字として用意し、コンピュータ用の文字集合GB2312に採用した結果、徐々に実社会でも普及した。
このように、日中両国で普及した記号は本来字体が異なるが、UnicodeでCJK統合漢字を定めた際に、この異なる記号をひとつのコード位置にまとめ、フォントの違いで使い分けるという対応がなされた。
この節の加筆が望まれています。 |
日本における用法
数字の前につけることにより〜円という意味になる。
例:¥200(200円)
また、「¥200.-」のように数字の前に円記号、数字の後にピリオドとダッシュを入れて、前や後に数字を書き加えられることを防ぐこともある。これは銭の単位が日常的に用いられていた主に戦前に、例えば「10円50銭」を「¥10.50」といったように表記していた名残である。
中国における用法
数字の前につけることにより〜元という意味になる。
例:¥200(200元)
日本円と特に区別したい場合は、CN¥またはRMB¥(人民幣元、Renminbi Yuanの略)と書くことも行われる。
コンピュータにおける円記号の扱い
日本語用文字コードにおける円記号
日本語用の文字コードであるJIS X 0201では、円記号は0x5C番地に割り振られている。
JIS X 0201は、米国で制定された文字コードであるASCIIをベースにした国際規格のISO/IEC 646に基づくものである。ISO/IEC 646は128文字分の領域を持つコード体系だが、このうち12文字は各国で自由に決めてもよい領域とされていた。JIS X 0201で円記号が割り当てられた0x5C番地はこの12文字の1つであり、本家の米国版ASCIIではバックスラッシュ(\)記号が割り当てられていた番地である。
従って、ASCIIなどで記述された文書をJIS X 0201によるものと解釈して読むとバックスラッシュ(\)が円記号(¥)に文字化けすることとなり、逆もまた同様である。現在広く用いられている日本語用文字コードのShift_JISなどにもJIS X 0201に基づく部分があり、それらでも同じ現象が発生する。
バックスラッシュは、MS-DOSではディレクトリ名を区切る記号として、C言語なら文字列の中で特殊文字を意味する記号として扱われるなど、ISO/IEC 646で未定義の文字を、各種オペレーティングシステムやプログラミング言語、その他のソフトウェアで制御コードとして使用するという誤った使用が一般化してしまった。
日本語用の文字コードにはバックスラッシュが存在せず、同じ0x5C番地に円記号が割り当てられているのであるが、これらのソフトウェアでは0x5C番地の文字が制御コードとして扱われるようにされていたため、日本語用文字コードでは円記号が同等の制御コードとして解釈されることになった。
西ヨーロッパ言語用文字コードにおける円記号
西ヨーロッパで使われている文字コードであるISO-8859-1は、0x5CはASCIIと同じくバックスラッシュであり、円記号は別の番地0xA5に配置されている。従って、ISO-8859-1の円記号は制御コードとはならない。また、日本語用文字コードで記述された文書をISO-8859-1によるものと解釈して読む場合、やはり、円記号がバックスラッシュに文字化けする。
Unicodeにおける問題点(円記号問題)
日本語用文字コードからUnicodeに変換する際に発生する、円記号の扱いについての問題である。
Unicodeへの統合
世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界のあらゆる文字を含ませ、あらゆる文書をUnicodeで表現できるようにすることが目指された。世界の各種文字コードの文字はUnicodeの文字と対応付けられ、それに従って各種文字コードからUnicodeへの変換を可能にするものであったが、円記号の扱いについては問題があった。
前述のとおり、日本語用の文字コードでは円記号が0x5Cに位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は0x5C(バックスラッシュ)とは異なる番地の0xA5に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号(U+00A5)にマッピングした場合、変換後の円記号はバックスラッシュ(U+005C)と同等の制御コードと見なすべき日本版の円記号なのか、文字の一種でしかないヨーロッパ版の円記号なのか判別できなくなってしまうのである。また、Unicodeの円記号(U+00A5)を制御コードと見なさないものとすれば、制御コードとして使われている円記号はU+005C(バックスラッシュ)に、そうでないもの(通貨単位などを表すために使われているもの)はU+00A5(円記号)に変換せねばならないが、この処理は困難である。
現実的解決
この問題に対する現実的解決のひとつが、マイクロソフト製のOS(英語版を除く)で実装されている変換法である。この変換法では、日本の円記号はUnicodeのバックスラッシュ(U+005C)に変換される。そして、日本語用のフォントではバックスラッシュ(U+005C)を円記号として表示してしまうのである。
賛否両論の対応ではあったが、旧来のソフトウェアを捨て去ることなくUnicodeを利用できる現実的な方法として広く使われている。
Shift_JISにおける問題
Shift_JISでは文字の2バイト目が0x5C(円記号・バックスラッシュ)と成りうるため、当該箇所が誤って制御文字と認識されてしまい、問題が発生することがある。この問題の詳細については、Shift_JIS#2バイト目が0x5C等に成りうることによる問題を参照すること。
文字実体参照による出力
HTMLにおける文字実体参照では、¥ で円記号を表示することができる。このときに出力される円記号はU+00A5にマッピングされているものである。
符号位置
記号 | Unicode | JIS X 0213 | 文字参照 | 名称 |
---|---|---|---|---|
¥ | U+00A5 |
1-1-79 |
¥ ¥ ¥ |
円記号 |
¥ | U+FFE5 |
1-1-79 |
¥ ¥ |
円記号(全角) |
\ | U+005C | 1-1-32 | \ \ |
逆斜線 |
参考文献
- S. Gorn, R. W. Bemer, J. Green: American Standard Code for Information Interchange, Communications of the ACM, Vol.6, No.8 (1963年8月), pp.422-426.
- 情報処理交換用 新標準コード案 決定さる, 情報処理, Vol.6, No.6 (1965年11月), pp.173-174.
- 海宝顕: 電子計算機と情報処理におけるコード標準化の現況と課題, IBM Review, 第17号 (1967年7月), pp.167-176.
- R. W. Bemer: A View of the History of the ISO Character Code, The Honeywell Computer Journal, Vol.6, No.4 (1972年), pp.274-286.
- 山下良蔵: MS-DOSの漢字機能, ASCII, Vol.7, No.5 (1983年5月), pp.228-230.
- The Unicode Standard, Version 1.0, Vol.1, Addison-Wesley, Reading, 1991.