識別子記号
識別子の先頭や末尾に付与して識別子であること示す記号について考えている。
何か名前を付けたいので識別子記号と呼ぼう。
接頭識別子記号はよくあるが接尾識別子記号はあまりないように思う。
シェルのコマンドライン、QRコード、URIなどを考慮して使い勝手のよさそうな記号はどれか考察した。
使い勝手のよさそうな識別子記号
! 感嘆符
人間可読性の低い符号に使うとよさそう。
と思っていたが、これは間違いかもしれない。
可読性とは関係ないという考え方もあり。
そもそも可読性とは何かがあいまいだし、何ら構造を反映していない。
@と#は集合のための識別子記号、!は要素のための識別子記号とするのがよいのかも?
集合と要素を分けて考えるのがよいのか?
今まで@をつけていた固有名は要素としての性格を持っていた。これとどう折り合いをつけるか。
この識別子記号がついた識別子は何の意味も伴っていないという前提で扱うことになるだろう。
QRコードの英数字モードで使えないのが難点。
# 番号記号
一般名に使うのが良いのではないか。
QRコードの英数文字モードでは使えない。
- 負号
+ 正号
@ 単価記号
固有名に使うのが良いのではないか。
QRコードの英数文字モードでは使えない
^ サーカムフレックス
~ 波線符号
: コロン
機器を表す接尾記号に使うと良いのではないか。
prn:やC:からの類推で分かりやすそう。
NFSやscpにおけるパスの指定myhost.local:/mnt/vol1からの類推で分かりやすそう。
調査
ASCIIコード表から記号だけ抜き出す。
qra QRコードの英数モードで使える文字を✔とした。
b64 Base64
b6u Base64 Encoding with URL and Filename Safe Alphabet
ugd RFC 3986 gen-delims として予約されている記号を✔とした。
usd RFC 3986 sub-delims として予約されている記号を✔とした。
uur RFC 3986 unreservedに含まれる記号は4つ
wfn Windowsのファイル名として使えない文字は✖とした。
wcq Windowsのコマンドラインで二重引用符が必要な文字は✖とした。
table:ascii
hex qra b64 b6u ugd usd uur wfn wcq 候補
␣ 20 ✔ ✖
! 21 ✔ ✖ 〇
" 22 ✖ ✖
# 23 ✔ 〇
$ 24 ✔ ✔ ✖
% 25 ✔ ✖
& 26 ✔ ✖ ✖
' 27 ✔ ✖ ✖
( 28 ✔ ✖ ✖
) 29 ✔ ✖ ✖
* 2a ✔ ✔ ✖ ✖
+ 2b ✔ ✔ ✔ ✖ △
, 2c ✔ ✖ ✖
- 2d ✔ ✔ ✔ △
. 2e ✔ ✔ ✖
/ 2f ✔ ✔ ✔ ✖ ✖
: 3a ✔ ✔ ✖ ✖
; 3b ✔ ✖ ✖
< 3c ✖ ✖
= 3d ✔ ✖ ✖
3e ✖ ✖
? 3f ✔ ✖ ✖
@ 40 ✔ 〇
[ 5b ✔ ✖ ✖
\ 5c ✖ ✖
] 5d ✔ ✖ ✖
^ 5e ✖ 〇
_ 5f ✔ ✔ ✖
` 60 ✖ ✖
{ 7b ✖ ✖
| 7c ✖ ✖
} 7d ✖ ✖
~ 7e ✔ ✖ 〇
参考ページ
Mac でファイル名に使えない文字
ディレクトリ名に記号を使いたいので調べてみた
Windowsパス名の落とし穴
The Base16, Base32, and Base64 Data Encodings
Windowsでファイルやフォルダーに「使わない方がいい」文字
Unicode® Character Name Index
#consideration
#identifier
#character-set