Teratermからログインしてtreeコマンド実行したときの罫線の文字化けの仕方 - 揮発性のメモ2

揮発性のメモ2

知識をメモ書きしておく

Teratermからログインしてtreeコマンド実行したときの罫線の文字化けの仕方

オプションなし、UnicodeToDecSpMapping=0

TERATERM.INI に UnicodeToDecSpMapping=0(罫線に代替文字を使用しないモード)を設定したとき

$ tree hoge/
hoge/
├── abc
│?? └── 123
└── def
    └── 456

普通の全角の罫線で表示される。? になっている文字は UTF-8の空白(CA20、U+00A0、 、No-Break Space)
また、Linux側では罫線を半角幅だと思っているので、階層が深いと罫線がどんどん狂ってずれる

オプションなし、UnicodeToDecSpMapping=3

TERATERM.INI に UnicodeToDecSpMapping=3(罫線に代替文字を使用するモード)を設定したとき

$ tree hoge/
hoge/
tqq abc
x?? mqq 123
mqq def
    mqq 456

半角の罫線で表示される。しかしそれは見た目だけで、コピペするとなぞの文字列になる。

オプション -A

-A Turn on ANSI line graphics hack when printing the indentation lines.

$ tree -A hoge/
hoge/
tqq abc
x   mqq 123
mqq def
    mqq 456

UnicodeToDecSpMappingの設定に左右されなくなる。
半角の罫線で表示される。コピペするとなぞの文字列になる。

オプション -S

-S Turn on ASCII line graphics (useful when using linux console mode fonts).
Linuxのコンソールモードでよく使われるフォントの)罫線アスキーキャラ ということらしい

$ tree -S hoge/
hoge/
テトト abc
ウ   タトト 123
タトト def
    タトト 456

罫線が半角カタカナになる。

オプション --charset=x

とりあえず、でたらめなキャラセットを設定するとアスキーコードになる。

$ tree --charset=x hoge/
hoge/
|-- abc
|   `-- 123
`-- def
    `-- 456

コピペする分にはこれが一番無難
どんなキャラセットを設定すればいいのかは不明。しらん。