dポイントプレゼントキャンペーン実施中!

cygwin2.738
tcshでバッチを実行した際に、echoで表示される日本語が文字化けします。

下記を参考にnkfをインストールしてもダメでした。
http://blog.goo.ne.jp/rm_-rf/e/63aa37f245f401d14 …

かなり前に別のPCでcygwinをインストールして日本語表示できていますが、この時にどうやったか覚えていません。
このPCからnkfをコピーしてもダメでした。

tcshのversionを見るとkanはありますが、dspmがないです。
別のPCからtcshをコピーするとdspmが表示されますが文字化けします。

日本語が表示できているcygwin環境をそっくり移すことはできないでしょうか?
cygwinフォルダ丸ごとコピー以外に何があるでしょうか?

A 回答 (3件)

localeコマンドの結果を補足してください。



当方では
LANG=ja_JP.SJIS
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
の状況ならechoコマンドでシェル変数は化けませんでした。

この回答への補足

LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=
となってます。
setで見ると、dspmbyteはsjisになっています。

別の日本語表示されているPCではlocaleは使えませんでした。

補足日時:2011/04/04 16:50
    • good
    • 0
この回答へのお礼

下記でレジストリの場所2つが解りまして、フォルダとレジストをコピーしたら日本語表示されました。
localeは使えなくなりましたが。
http://nova-memo.blogspot.com/2009/05/cygwin.html

お騒がせしました。
すでにある環境のおかげですが、新規インストールする事になった場合はまた試行錯誤しそうですが・・・

ありがとうございました。
 

お礼日時:2011/04/04 17:15

2.738はSetup.exeのバージョンでCygwinのバージョンでは無いので、この情報は無意味。



まず、その日本語が使えるPCでのCygwinとtcshのバージョン、そして今回のPCのCygwinとtcshのバージョンをもう一度確認すること。

Cygwin の1.5と1.7では大きく変わりました。特にlocaleがある程度使えるようになったり、内部処理がUnicodeになったりしてます。
標準の端末も、たしかUTF-8に変わっていたような気がします(全然使ってないので曖昧です)


あと、nkfを使ったとありますが、具体的にどんな風に使いましたか?
nkfでは文字コードの指定ができます。その出力の指定と端末のコードはあってますか?
nkfの出力はtcshの設定とは関係無いはずです。

あと、tcshのechoって文字コードの変換までやってたかどうか。
たぶんやってない気がするのですが。dspmとは関係無い気がします。
    • good
    • 0

LANG とかの値が C.UTF-8 になっている (つまり UTF-8 だと思っている) のに dspmbyte が sjis になっている (つまり shift_jis) のが原因だったりしませんかね.



あとは「バッチ」の文字コードとか.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!