「円記号」の版間の差分
編集の要約なし |
Greeneyes3 (会話 | 投稿記録) Ұは無関係な文字、「円記号は~人民元などを表す」は(たとえ円記号が正式な記号名称でも)混乱を呼ぶ、曖昧な用語を整理、 |
||
1行目: | 1行目: | ||
{{混同|x1=キリル文字|Ұ}} |
|||
{{記事名の制約|¥}} |
|||
{{特殊文字|説明=円記号などの記号}} |
{{特殊文字|説明=円記号などの記号}} |
||
{{記号文字| |
{{記号文字|¥}} |
||
'''¥''' は、[[日本]]の[[通貨]][[単位]]の[[円 (通貨)|円]]や[[中華人民共和国]]の[[人民元]]などを表す[[通貨記号]]である。[[Unicode]]文字名称は「{{smallcaps|Yen Sign}}」、[[JIS X 0213|JIS]]文字名称は'''円記号'''(えんきごう)。金額を表す数字に前置する。 |
|||
この円記号は、[[コンピュータ]]での |
この円記号は、[[コンピュータ]]での[[Unicode文字のマッピング|文字コード変換マッピング]]に厄介な問題を抱えた[[約物|記号]]の1つ(類似の問題を抱える記号には「[[ウォン記号|₩]]」がある)として知られ、円記号のその問題は「円記号問題」と呼ばれる。 |
||
⚫ | |||
⚫ | |||
⚫ | |||
[[Image:receipt_JPY.jpg|thumb|240px|領収書に書かれた円記号]] |
[[Image:receipt_JPY.jpg|thumb|240px|領収書に書かれた円記号]] |
||
⚫ | |||
⚫ | |||
一方、[[中国]]では本来の通貨単位である |
一方、[[中国]]では本来の通貨単位である「[[圓]]」を、[[貨幣]]を表すにふさわしい・[[筆画|画数]]が少ない等の理由から、[[同音異字]]の「元」に代替した。双方、[[拼音]]で「yuán」と綴り、この頭文字に横線を1本または2本加えた記号「¥」を[[漢字]]と同じ[[マルチバイト文字|2バイト文字]]として用意し、コンピュータ用の[[文字集合]][[GB 2312]]に採用した結果、徐々に実社会でも普及した。 |
||
{{節stub}} |
{{節stub}} |
||
{{clear}} |
|||
== 日本における用法 == |
|||
== 各国の用法 == |
|||
=== 日本 === |
|||
数字の前につけることにより「 - 円」という意味になる。 |
数字の前につけることにより「 - 円」という意味になる。 |
||
22行目: | 27行目: | ||
また、「¥200.-」のように数字の前に円記号、数字の後に[[終止符|ピリオド]]と[[ダッシュ (記号)|ダッシュ]]を入れて、前や後に数字を書き加えられることを防ぐこともある。これは[[銭]]の単位が日常的に用いられていた頃に、例えば「10円50銭」を「¥10.50」といったように表記していた名残である。 |
また、「¥200.-」のように数字の前に円記号、数字の後に[[終止符|ピリオド]]と[[ダッシュ (記号)|ダッシュ]]を入れて、前や後に数字を書き加えられることを防ぐこともある。これは[[銭]]の単位が日常的に用いられていた頃に、例えば「10円50銭」を「¥10.50」といったように表記していた名残である。 |
||
== 中国 |
=== 中国 === |
||
⚫ | |||
数字の前につけることにより「 - 元」という意味になる。 |
数字の前につけることにより「 - 元」という意味になる。 |
||
30行目: | 34行目: | ||
日本円と特に区別したい場合は、CNҰまたはRMBҰ(人民幣元、Renminbi Yuanの略)と書くことも行われる。 |
日本円と特に区別したい場合は、CNҰまたはRMBҰ(人民幣元、Renminbi Yuanの略)と書くことも行われる。 |
||
== コンピュータに |
== コンピュータによる扱い == |
||
=== 日本語用文字 |
=== 日本語用文字集合への収録 === |
||
[[日本語]]用の[[文字 |
[[日本語]]用の[[符号化文字集合]]規格である[[JIS X 0201]]では、円記号は[[十六進記数法#表記方法|0x]]5C番地に割り振られている。 |
||
JIS X 0201は、[[アメリカ合衆国]]で制定された文字 |
JIS X 0201は、[[アメリカ合衆国]]で制定された符号化文字集合の[[ASCII]]を拡張し[[国際規格]]とした [ISO/IEC 646]] に準拠している。ISO/IEC 646は128文字分の領域を持つ符号化文字集合だが、このうち12文字は各国で自由に決めてもよい領域である。JIS X 0201 円記号が割り当てられた0x5C番地はこの12文字の1つであり、ASCIIでは[[バックスラッシュ]] ({{backslash}}) 記号が割り当てられていた。 |
||
従って、ASCIIなどで記述された文書をJIS X 0201によるものと解釈して読むとバックスラッシュ ({{backslash}}) が円記号 (¥) に[[文字化け]]することとなり、逆もまた同様である。現在広く用いられている日本語用文字コードの[[Shift_JIS]]などにもJIS X 0201に基づく部分があり、それらでも同じ現象が発生する。 |
従って、ASCIIなどで記述された文書を JIS X 0201 によるものと解釈して読むとバックスラッシュ ({{backslash}}) が円記号 (¥) に[[文字化け]]することとなり、逆もまた同様である。現在広く用いられている日本語用文字コードの[[Shift_JIS]]などにも JIS X 0201 に基づく部分があり、それらでも同じ現象が発生する。 |
||
バックスラッシュは、[[MS-DOS]]では[[ディレクトリ]]名を区切る記号として、[[C言語]]なら[[文字列]]の中で[[特殊文字]]を意味する記号として扱われるなど、ISO/IEC 646で未定義の文字を、各種[[オペレーティングシステム]]や[[プログラミング言語]]、その他の[[ソフトウェア]]で制御コードとして使用するという不適切な仕様が一般化してしまった。 |
バックスラッシュは、[[MS-DOS]]では[[ディレクトリ]]名を区切る記号として、[[C言語]]なら[[文字列]]の中で[[特殊文字]]を意味する記号として扱われるなど、ISO/IEC 646 で未定義の文字を、各種[[オペレーティングシステム]]や[[プログラミング言語]]、その他の[[ソフトウェア]]で制御コードとして使用するという不適切な仕様が一般化してしまった。 |
||
日本語用の文字コードにはバックスラッシュが存在せず、同じ0x5C番地に円記号が割り当てられているのであるが、これらのソフトウェアでは0x5C番地の文字が |
日本語用の文字コードにはバックスラッシュが存在せず、同じ0x5C番地に円記号が割り当てられているのであるが、これらのソフトウェアでは0x5C番地の文字がエスケープ文字として扱われるようにされていたため、「日本語用文字コードでは円記号が同等のエスケープ文字として解釈される」ことになった。 |
||
=== 西ヨーロッパ言語用文字 |
=== 西ヨーロッパ言語用文字集合への収録 === |
||
[[西ヨーロッパ]]で使われている文字 |
[[西ヨーロッパ]]で使われている符号化文字集合である[[ISO/IEC 8859-1|ISO-8859-1]]は、0x5CはASCIIと同じくバックスラッシュであり、円記号は別の番地0xA5に配置されている。従って、ISO-8859-1の円記号は制御コードとはならない。また、日本語用文字コードで記述された文書をISO-8859-1によるものと解釈して読む場合、やはり、円記号がバックスラッシュに文字化けする。 |
||
== Unicode |
== Unicodeが持つ問題(円記号問題) == |
||
日本語用文字コードから[[Unicode]]に変換する際に発生する、円記号の扱いについての問題である。 |
日本語用文字コードから[[Unicode]]に変換する際に発生する、円記号の扱いについての問題である。 |
||
51行目: | 55行目: | ||
世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界中のあらゆる文字を含ませ、あらゆる言語をUnicodeで表現できるようにすることが目指された。世界の各種文字コードの文字はUnicodeの文字と対応付けられ、それに従って各種文字コードからUnicodeへの変換を可能にするものであったが、円記号の扱いについては問題があった。 |
世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界中のあらゆる文字を含ませ、あらゆる言語をUnicodeで表現できるようにすることが目指された。世界の各種文字コードの文字はUnicodeの文字と対応付けられ、それに従って各種文字コードからUnicodeへの変換を可能にするものであったが、円記号の扱いについては問題があった。 |
||
前述のとおり、日本語用の文字コードでは円記号が0x5Cに位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は0x5C(バックスラッシュ)とは異なる番地の0xA5に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号 (U+00A5) にマッピングした場合、変換後の円記号はバックスラッシュ (U+005C) と同等の制御コードと見なすべき「 |
前述のとおり、日本語用の文字コードでは円記号が0x5Cに位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は0x5C(バックスラッシュ)とは異なる番地の0xA5に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号 (U+00A5) にマッピングした場合、変換後の円記号はバックスラッシュ (U+005C) と同等の制御コードと見なすべき「日本版の円記号」なのか、文字の一種でしかない「ヨーロッパ版の円記号」なのか判別できなくなってしまうのである。また、Unicodeの円記号 (U+00A5) を制御コードと見なさないものとすれば、「制御コードとして使われている円記号はU+005C(バックスラッシュ)に」、「そうでないもの(通貨単位などを表すために使われているもの)はU+00A5(円記号)に」変換せねばならないが、この処理は困難である。 |
||
=== 現実的解決 === |
=== 現実的解決 === |
||
62行目: | 66行目: | ||
== 文字実体参照による出力 == |
== 文字実体参照による出力 == |
||
[[HyperText Markup Language|HTML]]における[[文字参照#文字実体参照(実体参照)|文字実体参照]]では、 |
[[HyperText Markup Language|HTML]]における[[文字参照#文字実体参照(実体参照)|文字実体参照]]では、 <code>&yen;</code> で円記号を表示することができる。このときに出力される円記号はU+00A5にマッピングされているものである。 |
||
== 符号位置 == |
== 符号位置 == |
||
69行目: | 73行目: | ||
{{CharCode|165|A5|1-1-79|円記号|yen}} |
{{CharCode|165|A5|1-1-79|円記号|yen}} |
||
{{CharCode|65509|FFE5|1-1-79|円記号(全角)}} |
{{CharCode|65509|FFE5|1-1-79|円記号(全角)}} |
||
{{CharCode|1200|4b0|‐|cyrillic capital letter straight u with stroke}} |
|||
|- style="text-align: center;" |
|- style="text-align: center;" |
||
|style="font-size:300%; line-height:100%;"|{{backslash}} |
|style="font-size:300%; line-height:100%;"|{{backslash}} |
||
79行目: | 82行目: | ||
== 参考文献 == |
== 参考文献 == |
||
{{参照方法|date=2014年1月}} |
|||
* 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. |
* 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. |
* 情報処理交換用 新標準コード案 決定さる, 情報処理, Vol.6, No.6 (1965年11月), pp.173-174. |
||
91行目: | 96行目: | ||
== 外部リンク == |
== 外部リンク == |
||
*[http://slashdot.jp/~yasuoka/journal/360792 YEN SIGN問題縁起](2006.6 |
*[http://slashdot.jp/~yasuoka/journal/360792 YEN SIGN問題縁起](2006.6 [[安岡孝一]]の日記、[[スラッシュドットジャパン]]) |
||
{{Currency signs}} |
{{Currency signs}} |
2014年1月7日 (火) 10:30時点における版
¥ は、日本の通貨単位の円や中華人民共和国の人民元などを表す通貨記号である。Unicode文字名称は「Yen Sign」、JIS文字名称は円記号(えんきごう)。金額を表す数字に前置する。
この円記号は、コンピュータでの文字コード変換マッピングに厄介な問題を抱えた記号の1つ(類似の問題を抱える記号には「₩」がある)として知られ、円記号のその問題は「円記号問題」と呼ばれる。
由来
幕末の英米人により、「円」は「en」ではなく「yen」と綴られた(詳細は円 (通貨)を参照)。ドルの習慣に合わせて、その頭文字Yに同様の二重線を入れたものが「¥」の由来であるとする説が一般的である。
一方、中国では本来の通貨単位である「圓」を、貨幣を表すにふさわしい・画数が少ない等の理由から、同音異字の「元」に代替した。双方、拼音で「yuán」と綴り、この頭文字に横線を1本または2本加えた記号「¥」を漢字と同じ2バイト文字として用意し、コンピュータ用の文字集合GB 2312に採用した結果、徐々に実社会でも普及した。
この節の加筆が望まれています。 |
各国の用法
日本
数字の前につけることにより「 - 円」という意味になる。
例:¥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バイト目が5C等になりうることによる問題を参照すること。
文字実体参照による出力
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.
関連項目
外部リンク
- YEN SIGN問題縁起(2006.6 安岡孝一の日記、スラッシュドットジャパン)