よく分からずにテキトーにやってます。
以下の記述は私のテキトーな調査を基に記述しています。
けっして信じないでください。
日本語名のフォルダを作成してみます。
以下のフォルダ作成は、Vine Linux 4.1のGNOMEターミナルエディタからDebian GNU/Linux 4.0にtelnet接続して行いました。
$ mkdir UTFです <-- GNOMEターミナルをUTF8に設定し、
フォルダ"UTFです"を作成
$ mkdir EUC鐃叔わ申 <-- GNOMEターミナルをEUC-JPに設定し、
フォルダ"EUCです"を作成
(入力中に文字化けします)
$ ls <-- GNOMEターミナルをEUC-JPに設定
(日本語名のフォルダは全て文字化けしてしまいます)
??能?? Comic_etc EUC?任? Game HONDA KOUSHIEN TV_Cinema
UTF�с WallPaper WallPaper2 Web
$ ls <-- GNOMEターミナルをUTF8に設定
(UTF-8の日本語名のフォルダだけ正常に表示されます)
??ǽ?? Comic_etc EUC?Ǥ? Game HONDA KOUSHIEN TV_Cinema
UTFです WallPaper WallPaper2 Web
ここまででフォルダなどを作成したところをVine Linux 4.1のKonquerorで参照したのが下記です。
Vine Linux 4.1の文字コードはEUC-JPです。
日本語のフォルダ名がついているのは下記の3つです。
芸能人・・・Debian GNU/Linux (UTF-8の環境)に変更する以前から作成してあったフォルダ名EUC-JPのフォルダ
UTFです・・・上でGNOMEターミナルをUTF-8に設定した後に作成したフォルダ(化けてます)
EUCです・・・上でGNOMEターミナルをEUC-JPに設定した後に作成したフォルダ
GNOMEターミナルをUTF-8にして入力したフォルダ名はUTF-8で、GNOMEターミナルをEUC-JPにして入力したフォルダ名はEUC-JPで保存されていると思われます。
自分で作ったファイル名/フォルダ名の文字コードを調べるスクリプト(信頼性0)で調べると次のようになりました。
��ǽ�� (Directory)->
EUC-JP <-- 狙い通り!
Comic_etc (Directory)->
ASCII
EUC�Ǥ� (Directory)->
EUC-JP <-- 狙い通り!
Game (Directory)->
ASCII
HONDA (Directory)->
ASCII
KOUSHIEN (Directory)->
ASCII
TV_Cinema (Directory)->
ASCII
UTFです (Directory)->
UTF-8 <-- 狙い通り!
WallPaper (Directory)->
ASCII
WallPaper2 (Directory)->
ASCII
Web (Directory)->
ASCII
一応私の意図通りになっているようです。
(フォルダ名のエンコードもスクリプトの動作も)
繰り返しますが、信頼性0です。
ちなみにスクリプトの中身はこうです。
信頼性0です。
私はシェルスクリプトなんて作ったことろくにありません。
よく分かりません。
(というか、誰か教えて・・・)
中でnkfを--guessオプションをつけて使用しています。
おそらくnkf 2.0.4以降が必要だと思います。
#!/bin/sh
error_flag=1 # Initial valuable (ERROR)
for name in *; do
if [ -L "$name" ];then
# Symbolic link
type="Symbolic link"
error_flag=1
elif [ -d "$name" ]; then
# directory
type="Directory"
error_flag=0 # success
elif [ -f "$name" ]; then
# file
type="File"
error_flag=0 # success
else
# unknown
type="Unknown type"
error_flag=1 # error
fi
if [ $error_flag = 0 ]; then
echo "$name ($type)->"
echo -n " "
echo -n "$name" | nkf -guess
else
echo "$name ($type)"
fi
done
exit 0
0 件のコメント:
コメントを投稿