「\ 」はこの項目へ転送 されています。「¥」については「円記号 」をご覧ください。
\
\
バックスラッシュ (英 : backslash )、逆斜線 (ぎゃくしゃせん)、あるいはリバースソリダス (英 : reverse solidus )は、約物 の一つで、「 \ 」と書き表される。バックスラッシュ とはスラッシュ 「 / 」の逆という意味である。ただしスラッシュとは異なり、自然言語 ではほぼ使われることのない記号 である。
バックスラッシュと円記号 (¥) の問題については、円記号 も参照のこと。
歴史
ホイートストン式鍵盤鑽孔機。3列目の最後にバックスラッシュがある。
1966年6月14日以前のASCII文字セットからなるASR-33 キーボード配列。Shift+L でバックスラッシュを入力する。
2021年11月現在、起源は特定されておらず、判明している最も古い文献は、ホイートストン式 (英語版 ) (Wheatstone system ) のクラインシュミット鍵盤鑽孔機 (英語版 ) WPE-3のキーボードの写真を伴うテレタイプ の1937年 の整備規程である[ 1] [ 2] 。この記号は"diagonal key" (対角線キー)と呼ばれ[ 3] 、「・-・・-」の(非標準)モールス符号 が与えられた[ 4] [ 注釈 1] 。
1960年 6月、IBM は「拡張文字セット規格」("extended character set standard" ) を発表し、バックスラッシュを 0x19 に割り当てた[ 2] 。1961年 9月、IBMのボブ・ベーマー (英語版 ) はX3.2規格委員会 に、バックスラッシュを "reverse division operator" (逆除算演算子)と表現し、電気通信 におけるテレタイプ による先行利用を引用して [
, ]
と \
の3記号を標準化への提唱 に含めるよう提案した。特に、ALGOL のブール演算子 である∧
(論理積 )と∨
(論理和 )を、それぞれ/
と\
で合成できるようにするために、\ を必要だとした。委員会は1961年11月の会合で、これらの変更をASCII の草稿に採用した[ 2] 。
これらの演算子は、Unix V6 とV7 に付属するC言語 の初期バージョンで min と max の代わりに使用された[ 5] [ 6] 。
1963年のテレタイプモデルASR-33 は、一部の市場で販売される標準的なキートップとしてこの文字を持つ最初の市販機であるとされる。このモデルは完全なASCII 文字セットを持つ。
コンピュータにおけるバックスラッシュ
コンピュータ では、バックスラッシュ (U+005C) はさまざまな局面で使われている。
MS-DOSにおいてパス区切り文字としてバックスラッシュが選択された理由としては、MS-DOSではコマンドラインオプションの先頭識別文字にスラッシュが使われていたことも関係している。ただし、内部的にはスラッシュへの切り替えにも対応していた[ 9] 。Windowsでは、多くの場面でパス区切り文字としてバックスラッシュの代わりにスラッシュも使うことができるが、APIによってはスラッシュに対応しておらず、バックスラッシュのみを受け付けるものもある。
なお、DOS/Windowsパスでは、C:\foo\bar.txt
のようにドライブレター とドライブ区切り文字:
の直後にバックスラッシュを入れた場合は絶対パスとなるが、C:foo\bar.txt
のようにバックスラッシュを入れなかった場合は該当するドライブの現在のディレクトリからの相対パスとなる[ 10] 。この仕様はWindowsのファイルパス関連のバグの共通の源にもなっている。
Shift_JIS のマルチバイト文字 には、「能」(94,5C) や「表」(95,5C) など、2バイト目が0x5Cとなるような文字がいくつか存在する。このような文字は様々な問題を引き起こすことがあり、通称「ダメ文字」と呼ばれている。例えばC/C++のソースコードでは、//
で始まる形式のコメント行末尾が\
で終わっていると、前述の仕様によって次の行もコメントアウトされるが、もしソースファイルをShift_JISでエンコードしており、// 実行可能
や// 一覧表
のようにコメントの行末にShift_JISのダメ文字が来ると、Shift_JISの扱いに対応していない処理系の場合は次の行も意図せずコメントアウトされてしまう。
なお、Python にも\
による類似の行継続の機能は存在するが、C/C++と違ってコメント行を継続することはできない仕様となっている[ 11] 。
エスケープ
UNIX およびその影響を受けたさまざまな環境において、通常記述できない文字 を記述する方法として広く用いられる。
このような場面で逆にエスケープさせずバックスラッシュ自身を記述したい場合は、\ \
のように2つ重ねる必要がある。
代用
文字集合 にない文字の代用に使われる。
日本 では、円記号のないASCII などで円記号「¥」の代わりに使われる。円記号のある文字集合でも、バックスラッシュを円記号に文字化け して表示する環境で、円記号のつもりでバックスラッシュを入力するケースも多い。
韓国 でも同様に、ウォン記号 の代わりに、あるいはウォン記号のつもりで誤って使われる。
罫線素片 「╲」の代わりに使われる。ただし、日本や韓国では文字化けにより字形の類似 が成り立たないことが多いので、使用はまれである(全角 バックスラッシュが使われることはある)。
差集合 「∖」の代わりに使われる。
バックスラッシュと円記号
ASCII のバックスラッシュ (0x5C, 5/12) はJIS X 0201 では円記号 であるため、日本のコンピュータや日本語のフォント・OS環境ではバックスラッシュが円記号として表示されるものが多い。Unicode#日本語環境でのUnicodeの諸問題 も参照。
JIS配列 のキーボード でも通常は [要出典 ] バックスラッシュがなく円記号が刻印されている。しかし今日 [いつ? ] 一般に用いられるPC/AT互換機 のJIS配列(OADG 109/109A配列)キーボードでは、バックスラッシュと円記号が両方とも(別々のキーに)刻印されている。
GUI環境ではプログラムの進捗状況や動作状況を表すためにプログレスバー やプログレスリング、スピニングカーソルが使われるが、コンソール環境では|
, /
, -
, \
を使って回転する棒にみせかけたASCIIアニメーションが使われることがある[ 12] 。ただし、日本語環境では通例バックスラッシュが円記号として表示されてしまい、意味が通じなくなる。
Mac OS ではバックスラッシュと円記号とは区別される。バージョン 7.1〜9.x で主流だった日本語 文字コード MacJapanese において、0x5C に円記号が、0x80 にバックスラッシュ記号がそれぞれ別々のコードポイント に存在している。
バックスラッシュの入力方法
Mac OS
バックスラッシュ記号 \ が刻印されたキーボードではそのままキー入力する。もしくは option + Y とキーボード入力しても良い。
JIS配列 のキーボード では、バックスラッシュ記号 \ ではなく ¥ が刻印されているが、option + ¥ とキーボード入力しても良い。
Microsoft Windows
バックスラッシュと円記号は同一視され(文字 0x5C)、キーボード上のどちらのキーを押しても同じ文字が入力される。表示では、欧文フォント下ではバックスラッシュ、日本語フォント下では円記号が入力される。これは日本IBM のキーボードの刻印に由来するもので、メインフレーム の端末 として設計 された時代の名残であり、今日 [いつ? ] の一般的なPC環境で円記号とバックスラッシュが共存できることを意味しているわけではない。
コンソール 、テキストエディタ 、各種テキストボックス (エディットボックス)など、プログラム 上で文字入力可能な場所でバックスラッシュを入力すると、日本語環境ではスクリーン上に円記号が表示されることがあるが、内部的には同じ文字コード0x5Cであり、多くの場合において円記号はバックスラッシュと同じ処理が可能な文字であると認識される。
共存方法
円記号
文字コードがISO-8859-1 やUnicode等欧文フォントが用いられる環境で確実に円記号を表示するためには0x5Cでなく0xA5の文字を使えばよい。この文字はHTML 文書においては文字参照 「¥
」(¥)や「¥
」(¥)で表示させることができるほか、Mac OS XではOption+Yで入力可能である。ただし、円記号は人民元 の意味でも用いられるため、国際的なやりとりの場面では誤解のないようJPYやCNYと表記または併記すべきである。
バックスラッシュ
確実にバックスラッシュを表示させるには全角 のバックスラッシュ (U+FF3C) を指定する以外にはない。日本語 ・韓国語 以外のフォント の指定であれば0x5Cの文字はバックスラッシュとして表示される可能性が高いが、OSやテキストレンダリングエンジンやアプリケーションによってはフォールバックにより日本語フォントが部分的に使われて円記号になることもある。フォントの指定をしたくない場合、次善の策としてHTMLのlang属性 を英語 (en) などにすると、多くの環境ではバックスラッシュで表示される。ただしブラウザ の設定によっては英語の表示フォントが日本語フォントになっている場合もありうるため、確実な方法ではない。
ブラウザでの表示
HTMLソース
\ \ ¥ \
< html >
< head >
</ head >
< body >
< span lang = "en" > \</ span > < span lang = "ja" > \</ span > ¥ \
</ body >
</ html >
符号位置
記号
Unicode
JIS X 0213
文字参照
名称
\
U+005C
1-1-32
\
\
逆斜線 REVERSE SOLIDUS
⃥
U+20E5
-
⃥
⃥
COMBINING REVERSE SOLIDUS OVERLAY
∖
U+2216
-
∖
∖
SET MINUS
╲
U+2572
-
╲
╲
BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
⧵
U+29F5
-
⧵
⧵
REVERSE SOLIDUS OPERATOR
﹨
U+FE68
-
﹨
﹨
SMALL REVERSE SOLIDUS
\
U+FF3C
1-1-32 包摂
\
\
逆斜線 FULLWIDTH REVERSE SOLIDUS
脚注
注釈
^ これはスラッシュ(/)のモールス符号を逆から入力したものである。
出典
^ Bulletin 125, issue 2: Description and Adjustments of the Teletype Wheatstone Perforator , Teletype Corporation, (May 1938), p. ii, http://www.navy-radio.com/manuals/tty/tty125.pdf
^ a b c Fischer, Eric (2000-06-20), The Evolution of Character Codes, 1874–1968 , pp. 14-15, doi :10.1.1.96.678
^ Bulletin 188: Teletype automatic perforator set , Teletype Corporation, (August 1945), https://www.navy-radio.com/manuals/tty/188B-4508.pdf
^ Bulletin 1025, issue 3: Parts for Teletype Wheatstone Perforator , Teletype Corporation, (July 1945), https://www.navy-radio.com/manuals/tty/tty1025.pdf
^ “C compiler source ”. bitsavers.org (1975年). 2022年9月20日 閲覧。
^ “C compiler source ”. mit.edu (1979年). 2022年9月20日 閲覧。
^ 翻訳フェーズ - cppreference.com
^ Anonymous function - HaskellWiki
^ ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?
^ Windows システムのファイル パス形式 - .NET | Microsoft Learn
^ 2. 字句解析 — Python 3.10 ドキュメント
^ Spinning rod animation/Text - Rosetta Code
関連項目
空白類 記述記号 ハイフン類 音声記号 括弧類 準仮名・漢字 学術記号 単位記号 通貨記号
一般的な記号
この表には一部の環境で表示できない文字(一部の記号)があります(Help:特殊文字 )