Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇2053:
日本語の出力について [bdash] 04/05 02:55

 └◇2056:Re:日本語の出力について [MSだす。] 04/05
  └◇2057:Re[2]:日本語の出力について [bdash] 04/05
   └◇2058:Re[3]:日本語の出力について [MSだす。] 04/05
    └◇2063:Re[4]:日本語の出力について [bdash] 04/05 <


2053● 日本語の出力について[ bdash ] 2004 04/05 02:55
一部間違っていましたので、再アップさせて頂きます。。。


はじめまして。
かなり参ってます。ご回答をよろしくお願い致します。

【質問内容】
以下のEUC-JPで書かれたプログラムを実行すると、
画面出力が文字化けします。。。
Cygwinでは、出力がSJISでされる(コンソールの実体が
コマンドプロンプトだから?)からかと思うのですが、
何か対応策はないでしょうか??

【ソース(sample.cpp)】
#include <iostream>
using namespace std;

int main(void)
{
cout <<"日本で表示する\n";
return 0;
}

【コンパイル】
$ g++ sample.cpp

【出力結果】
ニ・ワ、ヌノスシィ、ケ、
スレッド一覧


2056● Re:日本語の出力について[ MSだす。 ] 2004 04/05 03:58
nkfがあればなんとでもなります。
Heavy moonのJEからインストールさせてもらうと良いでしょう。
http://www.sixnine.net/cygwin/index_ja.html

$ ./a.exe |nkf -s
日本で表示する
$
スレッド一覧


2057● Re[2]:日本語の出力について[ bdash ] 2004 04/05 05:11
ご回答ありがとうございます。>>MS出す。様

> nkfがあればなんとでもなります。
確かに、出力するだけなら上記で良いと思うのですが、
以下の場合は、どのように対処すれば良いのでしょうか?

。。。これって、「プログラミングの問題なのでは?」と、
少し恥ずかしく思いつつも質問させていただきます。。。

【ソース(sample.c)】
#include <stdio.h>

int main(void)
{
int n;

printf("整数を入力して下さい ");
scanf("%d", &n);
printf("入力した数字は %d です。\n", n);

return (0);
}
スレッド一覧


2058● Re[3]:日本語の出力について[ MSだす。 ] 2004 04/05 14:37
そのプログラムならソースそのものをnkfでsjisに
変換すればよいのではないでしょうか。
$ nkf -s sample.c > sample_sjis.c
$gcc -o sample sample_sjis.c
$
$./sample.exe
整数を入力して下さい 289
入力した数字は 289 です。
$

ただしsjisの場合、文字によって問題が発生することが
ありますが。
そもそも文字列を英語にしてしまう、とか
あるいは
$ echo '892' |./sample.exe |nkf -s
整数を入力して下さい 入力した数字は 892 です。
$
などということも(強引ですが)。

また、eucで使えるターミナルエミュレータもあります。
日本語パッチあてたrxvt、X11でktermとか。
これらもHeavy moonにあるはずです。
スレッド一覧


2063● Re[4]:日本語の出力について[ bdash ] 2004 04/05 20:50
お返事、ありがとうございます >>MSだす。様

> そのプログラムならソースそのものをnkfでsjisに
> 変換すればよいのではないでしょうか。
> $ nkf -s sample.c > sample_sjis.c
> $gcc -o sample sample_sjis.c
> $
> $./sample.exe
> 整数を入力して下さい 289
> 入力した数字は 289 です。
> $
>
> ただしsjisの場合、文字によって問題が発生することが
> ありますが。
> そもそも文字列を英語にしてしまう、とか
SJISへの変換の場合、表示できない文字があるので、
避けたいです。

> あるいは
> $ echo '892' |./sample.exe |nkf -s
> 整数を入力して下さい 入力した数字は 892 です。
> $
> などということも(強引ですが)。
う〜ん、微妙ですね。。。

> また、eucで使えるターミナルエミュレータもあります。
> 日本語パッチあてたrxvt、X11でktermとか。
> これらもHeavy moonにあるはずです。
よって、rxvt、ktermを使用する案でいきたいと思います。
ふ〜、cygwinを使い始めたばかりなので、
今から勉強します。

>>MSだす。様
また、課題にぶち当たった時はよろしくお願いしますです。
と言いつつ、rxvtの導入で既に四苦八苦してますが。。。
スレッド一覧

早田のホームページへ
CGIROOM