「円記号」の版間の差分

sty
m (sty)
(sty)
この円記号は、[[コンピュータ]]での取り扱いに厄介な問題('''円記号問題''')を抱えた記号のひとつとして知られる。
 
== 円記号の由来 ==
幕末の英米人の影響で、'''「円」'''は'''「en」'''ではなく'''「yen」'''と綴られることとなった(詳細は[[円 (通貨)]]を参照)。ドルの習慣に合わせて、その頭文字Yに同様の二重線を入れたものが'''「¥」'''の由来であるとする説が一般的である。
 
{{節stub}}
 
== 日本における用法 ==
数字の前につけることにより〜円という意味になる。
 
また、「¥200.-」のように数字の前に円記号、数字の後にピリオドと[[ダッシュ (記号)|ダッシュ]]を入れて、前や後に数字を書き加えられることを防ぐこともある。これは銭の単位が日常的に用いられていた主に戦前に、例えば「10円50銭」を「¥10.50」といったように表記していた名残である。
 
== 中国における用法 ==
数字の前につけることにより〜元という意味になる。
 
日本円と特に区別したい場合は、CN{{Lang|zh|¥}}またはRMB{{Lang|zh|¥}}(人民幣元、Renminbi Yuanの略)と書くことも行われる。
 
== コンピュータにおける円記号の扱い ==
=== 日本語用文字コードにおける円記号 ===
[[日本語]]用の[[文字コード]]である[[JIS X 0201]]では、円記号は[[十六進記数法#表記方法|0x]]5C番地に割り振られている。
 
日本語用の文字コードにはバックスラッシュが存在せず、同じ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等に成りうることによる問題]]を参照すること。
 
== 文字実体参照による出力 ==
[[HyperText Markup Language|HTML]]における[[文字参照#文字実体参照(実体参照)|文字実体参照]]では、'''¥''' で円記号を表示することができる。このときに出力される円記号はU+00A5にマッピングされているものである。
 
== 符号位置 ==
{| class="wikitable" style="text-align:center;"
!記号!![[Unicode]]!![[JIS X 0213]]!![[文字参照]]!!名称
|}
 
== 参考文献 ==
* 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.
* The Unicode Standard, Version 1.0, Vol.1, Addison-Wesley, Reading, 1991.
 
== 関連項目 ==
* [[文字化け]]
 
== 外部リンク ==
*[http://slashdot.jp/~yasuoka/journal/360792 YEN SIGN問題縁起]
 
3,133

回編集