認識できない文字を含むファイル名を別の文字に置き換える方法を定義する構成は何ですか?たとえば、私のLinuxシステムでは、PuTTYのUTF8設定で同じファイルが異なるように見えます。
$ ls | grep fran
fran▒aise
$ ls
fran?aise
fran▒aise
->エンコードされたバイトは次のとおりです。fran\xe2\x96\x92aise
システムがラテン語でエンコードされた\xe7
バイトを理解していないため、これをすべて行うようです。
また、デフォルトで別のNFSマウントである別のフォルダにコピーすると、別の名前が表示されますfran栩se
。
これらすべての暗黙の変更を実行する構成をどのように確認できますか?
locale:
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
答え1
私が使うパテには
構成 - > Windows - >翻訳 - >リモート文字セット:UTF-8
Linuxで
LANG=en_US.UTF-8
すべてが正常です
Linux > echo élève > française
Linux > od -c française
0000000 303 251 l 303 250 v e \n
0000010
Linux > ls | od -c
0000000 f r a n 303 247 a i s e \n
0000013
Linux > ls
française
そして完了stty
Linux > stty -a
speed 38400 baud; rows 40; columns 129; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
WindowsからLinuxでscpを実行すると、次のファイルが生成されます。vérification.xml
DOSで
vÚrification.xml | 99 kB | 99.9 kB/s | ETA: 00:00:00 | 100%
Linuxで
Linux > LANG=C.utf8 ls
fran??aise v?rification.xml
Linux > LANG=POSIX ls
fran??aise v?rification.xml
Linux > LANG=french ls
française v▒rification.xml
Linux > LANG=fr_FR.iso88591 ls
française v▒rification.xml
Linux > LANG=fr_FR.utf8 ls
française v?rification.xml