646で未定義の文字を、各種[[オペレーティングシステム]]や[[プログラミング言語]]、その他の[[ソフトウェア]]で制御コードとして使用するという不適切な仕様が一般化してしまった。日本語用の文字コードにはバックスラッシュが存在せず、同じ0x5C番地に円記号が割り当てられているのであるが、これらのソフトウェアでは0x5C番地の文字が制御コードとして扱われるようにされていたため、「'''日本語用文字コードでは円記号が同等の制御コードとして解釈される'''」ことになった。===世界の文字コードを単一の体系で包含するためUnicodeという文字コードが生まれた。Unicodeに世界中のあらゆる文字を含ませ、あらゆる言語をUnicodeで表現できるようにすることが目指された。世界の各種文字コードの文字はUnicodeの文字と対応付けられ、それに従って各種文字コードからUnicodeへの変換を可能にするものであったが、円記号の扱いについては問題があった。前述のとおり、日本語用の文字コードでは円記号が0x5Cに位置し、制御コードとして扱われる。それに対し、西ヨーロッパ言語用のISO-8859-1は0x5C(バックスラッシュ)とは異なる番地の0xA5に円記号が配置されており、円記号は制御コードとして扱われない。したがって、これらの文字コードで書かれた文書をUnicodeに変換し、いずれの円記号をもUnicodeの円記号(U+00A5)にマッピングした場合、変換後の円記号はバックスラッシュ(U+005C)と同等の制御コードと見なすべき「'''日本版の円記号'''」なのか、文字の一種でしかない「'''ヨーロッパ版の円記号'''」なのか判別できなくなってしまうのである。Unicodeの円記号(U+00A5)を制御コードと見なさないものとすれば、「'''制御コードとして使われている円記号はU+005C(バックスラッシュ)に'''」、「'''そうでないもの(通貨単位などを表すために使われているもの)はU+00A5(円記号)に'''」変換せねばならないが、この処理は困難である。円記号を表示することができる。このときに出力される円記号はU+00A5にマッピングされているものである。3.0のもとで利用可能です。プライバシーデスクトップ。