「円記号」の版間の差分
削除された内容 追加された内容
sty |
cleanup |
||
1行目:
<div style="float:right; margin: 10px; padding:30px; font-size: 400%; background-color: #ddddff; border: 1px solid #aaaaff;">¥</div>
{{通貨記号}}
'''円記号'''(えんきごう)、つまり '''¥''' は、[[日本]]の[[通貨]][[単位]]の[[円 (通貨)|円]]や[[中華人民共和
この円記号は、[[コンピュータ]]での取り扱いに厄介な問題('''円記号問題''')を抱えた[[記号]]のひとつとして知られる。
== 円記号の由来 ==
[[幕末]]の英米人の影響で、'''「円」'''は'''「en」'''ではなく'''「yen」'''と綴られることとなった(詳細は[[円 (通貨)]]を参照)。[[ドル]]の習慣に合わせて、その頭文字Yに同様の二重線を入れたものが'''「¥」'''の由来であるとする説が一般的である。
[[Image:receipt_JPY.jpg|thumb|
[[Image:Yuan sign single.svg|thumb|70px|中国元の[[通貨記号]]]]▼
一方、[[中国]]では本来の通貨単位である'''「[[圓]]」'''を、[[貨幣]]を表すにふさわしい・[[筆画|画数]]が少ない等の理由から、[[同音異字]]の'''「元」'''に代替した。双方、[[ピンイン]]で'''「Yuan」'''と綴り、この頭文字に横線を1本加えた記号'''「{{Lang|zh|¥}}」'''を[[漢字]]と同じ[[マルチバイト文字|2バイト文字]]として用意し、コンピュータ用の[[文字集合]][[
このように、日中両国で普及した記号は本来[[字体]]が異なるが、[[Unicode]]で[[CJK統合漢字]]を定めた際に、この異なる記号をひとつのコード位置にまとめ、[[フォント]]の違いで使い分けるという対応がなされた。
{{節stub}}
22 ⟶ 21行目:
例:¥200(200円)
また、「¥200.-」のように数字の前に円記号、数字の後に[[終止符|ピリオド]]と[[ダッシュ (記号)|ダッシュ]]を入れて、前や後に数字を書き加えられることを防ぐこともある。これは[[銭 (曖昧さ回避)|銭]]の単位が日常的に用いられていた
== 中国における用法 ==
数字の前につけることにより〜元という意味になる。
31行目:
日本円と特に区別したい場合は、CN{{Lang|zh|¥}}またはRMB{{Lang|zh|¥}}(人民幣元、Renminbi Yuanの略)と書くことも行われる。
==
===
[[日本語]]用の[[文字コード]]規格である[[JIS X 0201]]では、円記号は[[十六進記数法#表記方法|0x]]5C番地に割り振られている。
JIS X 0201は、[[アメリカ合衆
従って、ASCIIなどで記述された文書をJIS X 0201によるものと解釈して読むとバックスラッシュ({{backslash}})が円記号(¥)に[[文字化け]]することとなり、逆もまた同様である。現在広く用いられている日本語用文字コードの[[Shift_JIS]]などにもJIS X 0201に基づく部分があり、それらでも同じ現象が発生する。
バックスラッシュは、[[MS-DOS]]では[[ディレクトリ]]名を区切る記号として、[[C言語]]なら[[文字列]]の中で[[特殊文字]]を意味する記号として扱われるなど、ISO/IEC 646で未定義の文字を、各種[[オペレーティングシステム]]や[[プログラミング言語]]、その他の[[ソフトウェア]]で制御コードとして使用するという誤った使用が一般化してしまった。
日本語用の文字コードにはバックスラッシュが存在せず、同じ0x5C番地に円記号が割り当てられているのであるが、これらのソフトウェアでは0x5C番地の文字が制御コードとして扱われるようにされていたため、'''日本語用文字コードでは円記号が同等の制御コードとして解釈される'''ことになった。
===
==
日本語用文字コードから[[Unicode]]に変換する際に発生する、円記号の扱いについての問題である。
=== Unicodeへの統合 ===
世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界中のあらゆる文字を含ませ、あらゆる
前述のとおり、日本語用の文字コードでは円記号が0x5Cに位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は0x5C(バックスラッシュ)とは異なる番地の0xA5に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号(U+00A5)にマッピングした場合、変換後の円記号はバックスラッシュ(U+005C)と同等の制御コードと見なすべき'''日本版の円記号'''なのか、文字の一種でしかない'''ヨーロッパ版の円記号'''なのか判別できなくなってしまうのである。また、Unicodeの円記号(U+00A5)を制御コードと見なさないものとすれば、'''制御コードとして使われている円記号はU+005C(バックスラッシュ)に'''、'''そうでないもの(通貨単位などを表すために使われているもの)はU+00A5(円記号)に'''変換せねばならないが、この処理は困難である。
=== 現実的解決 ===
この問題に対する現実的解決のひとつが、[[マイクロソフト]]製の
賛否両論の対応ではあったが、旧来のソフトウェアを捨て去ることなくUnicodeを利用できる現実的な方法として広く使われている。
== Shift_JISにおける問題 ==
Shift_JISでは文字の2バイト目が0x5C(円記号・バックスラッシュ)と成りうるため、当該箇所が誤って制御文字と認識されてしまい、問題が発生することがある。この問題の詳細については、[[Shift_JIS#2バイト目が
== 文字実体参照による出力 ==
79行目:
== 参考文献 ==
* S. Gorn, R. W. Bemer, J. Green: American Standard Code for Information Interchange, Communications of the ACM, Vol.6, No.8
* 情報処理交換用 新標準コード案 決定さる, 情報処理, Vol.6, No.6
* 海宝顕: 電子計算機と情報処理におけるコード標準化の現況と課題, IBM Review, 第17号
* R. W. Bemer: A View of the History of the ISO Character Code, The Honeywell Computer Journal, Vol.6, No.4
* 山下良蔵: MS-DOSの漢字機能, ASCII, Vol.7, No.5
* The Unicode Standard, Version 1.0, Vol.1, Addison-Wesley, Reading, 1991.
|