円記号
理由は不明だが、明治時代に日本の通貨である日本円が制定された際、「円」は「en」ではなく「yen」と綴られた(詳細は円 (通貨)を参照)。ドルの習慣に合わせて、その頭文字Yに同様の二重線を入れたものが「¥」の由来であるとする説が一般的である。
一方、中国では本来の通貨単位である「圓」を、貨幣を表すにふさわしい・画数が少ない等の理由から、同音異字の「元」に代替した。双方、拼音で「yuán」と綴り、この頭文字に横線を1本または2本加えた記号「¥」を漢字と同じ2バイト文字として用意し、コンピュータ用の文字集合GB 2312に採用した結果、徐々に実社会でも普及した。
世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界中のあらゆる文字を含ませ、あらゆる言語をUnicodeで表現できるようにすることが目指された。世界の各種文字コードの文字はUnicodeの文字と対応付けられ、それに従って各種文字コードからUnicodeへの変換を可能にするものであったが、円記号の扱いについては問題があった。
前述のとおり、日本語用の文字コードでは円記号が5C(16進)に位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は5C(16進)(バックスラッシュ)とは異なる番地のA5(16進)に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号 (U+00A5) にマッピングした場合、変換後の円記号はバックスラッシュ (U+005C) と同等の制御コードと見なすべき「日本版の円記号」なのか、文字の一種でしかない「ヨーロッパ版の円記号」なのか判別できなくなってしまうのである。また、Unicodeの円記号 (U+00A5) を制御コードと見なさないものとすれば、「制御コードとして使われている円記号はU+005C(バックスラッシュ)に」、「そうでないもの(通貨単位などを表すために使われているもの)はU+00A5(円記号)に」変換せねばならないが、この処理は困難である。