- ベストアンサー
cygwin1.7.1のコンソールでS-JISを表示するには?
cygwin1.7.1のコンソールでS-JISを表示するには? 以前のcygwinのコンソールはS-JISの出力が正しく表示されていました。1.7.1からはコンソールの文字コードがUTF-8になったようですが、S-JISで文字を出力する昔の遺産がたくさんあり、文字化けしてしまいます。 コンソールの文字コードをS-JISにするにはどうすればいいでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
cygwin で ssh server を立ち上げて Poderosa で 接続するとか 私が、やりたいと思っていた事で 機会がなかなかなかったのでこの際やってみた。 特にお勧めとかではありません。
その他の回答 (5)
- vmi
- ベストアンサー率0% (0/1)
何処までマトモに動作するかは不明ですが、環境変数 LANG に ja_JP.SJIS と設定するとShift_JIS(CP932)が使えます。 補足すると、 Unicodeを使う場合は ja_JP.UTF-8 です。 EUC-JPを使う場合は ja_JP.eucJP です。(が、誰が使うんだこんなの) なお、URLは、Cygwin User's Guide の該当部分です。(英語ですが)
- kmee
- ベストアンサー率55% (1857/3366)
Windows用テキストエディタというのはコマンドプロンプトで使うタイプの物でしょうか? もし、そうではなく、GUIのもの(メモ帳とか秀丸とか)で、Windowsのファイルの関連付けがされているものなら cygstart -e ファイル名 でexplorerの右クリック→「編集」と同じ動作になります。 CUIのものだとちょっと面倒ですが、 `cygpath -S -u`/cmd /c エディタ `echo "$*" | xargs -n 1 cygpath -w` のようなスクリプトを介して実行できないでしょうか。 あとは、vi以外にもemacsを始めとするエディタがあるので、試してはどうですか?
補足
cygwinが 1.7.2 になったのでもしやと思いバージョンアップしてみたら、問題点が消えていました。
- cynthia4
- ベストアンサー率51% (186/358)
訂正 Poderosa は ssh server が起動していなくても cygwin に接続出来る。 Windows で ssh server を起動したいのと Poderosa を CentOS などと ssh 接続に使っているので 先走ってしまった。
- kmee
- ベストアンサー率55% (1857/3366)
方法1) インタラクティブではない、ただ出力されるだけのものなら、文字コード変換ツール(nkf等)を通してutf-8で出力する 方法2) 標準のコンソールをやめて、Shift_JISに対応しているターミナルを使う mintty Tera-term + CygTerm X Window + rxvt, xterm等 方法3) 新しくなったAPIとかもあるので、これを機会に、UTF-8にして再コンパイルする。
補足
cygwinが 1.7.2 になったのでもしやと思いバージョンアップしてみたら、問題点が消えていました。 setenv LANG ja_JP.SJIS と環境変数を設定するだけで、コンソールがS-JIS対応になってくれるようです。
- D-Matsu
- ベストアンサー率45% (1080/2394)
出力をUTF-8に変換する方を考えた方が楽ではないでしょうか。 nkf -wとか。
補足
cygwinが 1.7.2 になったのでもしやと思いバージョンアップしてみたら、問題点が消えていました。 setenv LANG ja_JP.SJIS と環境変数を設定するだけで、コンソールがS-JIS対応になってくれるようです。
お礼
ご回答ありがとうございます。 実は解決方法が分からなかったので、sshd を立ち上げて cygwinにputty で接続して使ってみました。これなら文字は化けません。 しかし、この方法の欠点はコマンドラインからwindows用のテキストエディターを立ち上げられないことです。windowsのテキストエディターは長年使っており、手になじんでいます。端末経由でcygwinを操作すると、windowsのエディターが使えないので vi を使うことになってしまいますが、どうも私はviは手になじみません。単なる慣れの問題かもしれませんが、現実に書き換えの時間が多くなるので、深刻です。 逆にいえば、この問題さえ解決すれば、cygwinの操作は端末経由でよいのですが。 もっと簡単な方法、たとえば環境変数を設定するだけで、漢字コードがS-JISになったりしないのでしょうか?
補足
cygwinが 1.7.2 になったのでもしやと思いバージョンアップしてみたら、問題点が消えていました。 setenv LANG ja_JP.SJIS と環境変数を設定するだけで、コンソールがS-JIS対応になってくれるようです。 お礼にも書きましたが、これは当然の仕様のように思います。1.7.1はまだ不完全だったようです。