▼スレッド
│
└◇3253:GCCのエスケープシーケンス [戸豚] 11/25 13:14
├◇3254:Re:GCCのエスケープシーケンス [zxcv] 11/28
├◇3255:Re:GCCのエスケープシーケンス [mari] 11/30
└◇3256:Re:GCCのエスケープシーケンス [戸豚] 11/30 <
「例題で学ぶLinuxプログラミング」という本の例題をCYGWINでコンパイルしようとしました。スレッド一覧
puts("USAGE: Prog <ソケット名>");
というような”ソ”など2文字目が0x5Cの文字で、
unknown escape sequence: '\203'
という警告が出ます。
そのまま走らせると "USAGE: Prog <ャPット名>"のように表示されてしまいます。
わざわさ "ソ\ケット名" のように \ を書き込む手間は取りたくありません。
文字コードを指定する方法はmanコマンドやinfoコマンドを見てもわかりませんでした。
GCCでシフトJISの文字列を正しく認識させることはできないんでしょうか。
CYGWINの日本語化として
1。CYGWIN-JEからnkfをダウンロード、解凍したイメージを /usr/bin にエクスプローラーでコピー。
2.moconv.shを使ってgettextのデータを日本語化。
をしています。
.bash_profileには以下の設定をしています。
export TZ=JST-09
export LANG=ja_JP.SJIS
export LESSCHARSET=dos
反応が無い様なのでコメントさせて頂きます。 Cygwin の日本語対応の状況には私も疎いので、雑談としてお読み頂ければ幸いです。スレッド一覧
> export LANG=ja_JP.SJIS
これは UNIX的には正しいと思いますが、数年前に調べた時には Cygwin はこれを ja_JP.eucJP とみなすという結論に至りました。
以来、私は SJIS を見捨てて EUC-JP か UTF-8 を使用しています。 これらだと、コメントや文字列定数中の日本語文字に正常動作を妨害されないはずです。
あるいは、 <http://www.eva.hi-ho.ne.jp/cgi-bin/user/zxcv/exsjis2.cgi> が参考になるかも知れません。
# コンパイラ側から見ると、SJIS対応は EUC-JP対応や UTF-8対応より大変なんですよ。
昔のGCCでは環境変数LANGにC-SJISを設定すればできました(GCCのビルド時にオプション指定が必要)が、Ver.3.4辺りから変更になっているようです。今のSetupでインストールされるGCCは3.4.4ですので変更後の方法でできます。スレッド一覧
その方法ですが、コンパイルオプションに
-finput-charset=cp932 -fexec-charset=cp932
を追加してみてください。これで期待通りになると思います。もしエラーになったらlibiconvをインストールしているかチェックしてみてください。
#cp932はWindowsでのShiftJISです。詳しくは“コードページ”でググってみてください。
mariさん、ありがとうございます。スレッド一覧
ちゃんとコンパイルできました。
これで一歩前に進めます。
zxcvさん
わたしは日本語化は3253で書いたように「環境変数設定して、nfk入れてmoconv.sh」だけしています。
11月24日の夜にftp.u-aizu.ac.jpから落としてきた環境で、それだけでXウィンドウ使わないならシフトJISで使えます。
まだXウィンドウを使ってないので日本語化はやってませんけどIMEプロキシーとか試そうと思ってますが、まずはソケットプログラミングを先に・・・。
日本語化はまだまだ先です。