

No.4ベストアンサー
- 回答日時:
#2です。
文字コードがJISですので、これをEUCに変換すれば、あなたの望んだ結果が得られます。
コマンドライン上で
nkf -e ソースファイル1 > ソースファイル2 と入力してください。
ソースファイル1は、あなたが作成したソースファイルです。これはJISコードになっています。ソースファイル2がEUCコードに変換されたファイルです。ソースファイル2をコンパイルすると、正しい結果が得られます。
尚、emacsの左下のところにエディット中のファイルの漢字コードが表示されるはずです。ソースファイル1の場合はEEJ、ソースファイル2の場合は、EEEと表示されるはずです。
この回答への補足
あと、便乗質問で申し訳ないのですが、デフォルトの漢字コードをiso-2022-jpからEUCに変更するにはどのようにしたらいいかご存じでしょうか?ご存じでしたら、手順を教えて頂きたいのですが、宜しくお願いします。
補足日時:2004/03/28 23:44返事ありがとうございます。
>> nkf -e ソースファイル1 > ソースファイル2
このコマンドを実行したあと再コンパイルしてみると、正常に表示されました。EUCに変更できるコマンドがあるんですね。是非、覚えておきます。
>>尚、emacsの左下のところにエディット中のファイの
>>漢字コードが表示されるはずです。ソースファイル
>>1の場合はEEJ、ソースファイル2の場合は、EEEと
>>表示されるはずです。
この点に関しては、私の環境では、ソースファイル1に関しては、-Jと表示され、ソースファイル2に関しては、
-Eと表示されます。が、特に問題は無いようです。
ご回答ありがとうございました。

No.6
- 回答日時:
#4です。
>あと、便乗質問で申し訳ないのですが、デフォルトの漢字コードをiso-2022-jpからEUCに変更するにはどのようにしたらいいかご存じでしょうか?ご存じでしたら、手順を教えて頂きたいのですが、宜しくお願いします。
本件、私も多少このことを調査したのですが、残念ながら判りませんでした。
この件は、カテゴリをUnix系OSに変えて、質問すると良い回答が得られるかも知れません。
尚、直接の回答にはなりませんが、emacsはソースが既にEUCコードの漢字を含んでいれば、EUCコードで入力できるようになりますので、新規のプログラムを作る場合でも、前のソース(EUC漢字を含んだ)をコピーして、作るようにすれば、EUCコードでの入力ができるようになります。
何度も丁寧な回答ありがとうございます。
>>この件は、カテゴリをUnix系OSに変えて、質問する
>>と良い回答が得られるかも知れません。
そうですね。そうしてみます。
>>尚、直接の回答にはなりませんが、emacsはソースがに
>>EUCコードの漢字を含んでいれば、EUCコードで入力で
>>きるようになりますので、新規のプログラムを作る場
>>合でも、前のソース(EUC漢字を含んだ)をコピーし
>>て、作るようにすれば、EUCコードでの入力ができるに
>>なります。
なるほど、このやり方もありますね。変更の仕方が分かるまではこのやり方を使うことにします。
ありがとうございました。
No.5
- 回答日時:
#3です。
>そうだったんんですね。てっきり、printf("データ")のように書くのが普通だと思っていました。
「あんまりごく普通ではありません。」と書きましたが、ちょっと誤解をまねくというかまずい表現でした。
JISでソースを書くのが意図的なら、#3で書いた方法を取るのが普通だと思いますが、1引数だけのprintfが普通でないとは思いません。
シフトJISやJIS(ISO-2022-JP等)をプログラム中で文字列として使うにはいろいろ制約(シフトJISだと\が含まれるとか)があるので、かなり意識してプログラムを書く必要があります。
JISコードである必然性が無いなら#4の書かれたようにEUC-JPにするのが楽です。プログラムの出力がJISである必要があるなら、ソースはEUC-JPで書いておいて
program | nkf -j
で、JISに変換することも出来ますからね。
No.3
- 回答日時:
>printf("データ"); のようにごく普通に文字列を並べたものであっても文字化けがします。
あんまりごく普通ではありません。
>文字コードは調べてみたところ、iso-2022-jpというものでした。
iso-2022-jpでの"データ"は、printf の書式制御文字である % を含んでますので、printf の第一パラメータに指定してはいけません。
printf("%s","データ");とか、fputs("データ",stdout); ではどうでしょうか?
"データ"に限らず、EUC-JP以外の漢字コードの文字列をprintfの第一パラメータに書かないほうがいいでしょう。fprintfの第二パラメータ等も同じ。
返事ありがとうございます。
>>iso-2022-jpでの"データ"は、printf の書式制御文で
>>ある % を含んでますので、printf の第一パラメーに
>>指定してはいけません。
そうだったんんですね。てっきり、printf("データ")のように書くのが普通だと思っていました。
>>printf("%s","データ");とか、fputs("データ
>>",stdout); ではどうでしょうか?
このようにすると、正常に表示されました。
>>"データ"に限らず、EUC-JP以外の漢字コードの文列
>>をprintfの第一パラメータに書かないほうがいいで
>>しょう。fprintfの第二パラメータ等も同じ。
そうですね。次回からは気をつけたいと思います。
ご回答いただきありがとうございました。

No.2
- 回答日時:
想像する文字コードの問題だと思われます。
EUCコードがデフォルトの文字コードであると言う前提で、
データと書いたのが、SJISかJISになっています。
この「データ」の全角カナ文字は、どのようにして作成されましたでしょうか。
端末でエディタで、直接作成した場合は、その漢字コードが何になっているか調べてください。この方法が判らないときは、エディタは何を使用しているか、提示してください。
又、このソースをWindowsで書いてLinuxにアップロードしているのでしたら、その時の漢字コードの指定は何にしているのか提示してください。
この回答への補足
返事ありがとうございます。
「データ」という文字は、Emacsにて作成しました。
文字コードは調べてみたところ、iso-2022-jpというものでした。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LSI C-86 v3.30c 試食版について
-
VB.NETで他のプロジェクトで作...
-
VisualBasicを保存するときにで...
-
他の.CPPファイルに定義した関...
-
VC++でexeファイルが作成できま...
-
標準的な、vb6.0の開始・保存・...
-
コンパイルするときに、ファイ...
-
C言語初心者の質問失礼します。
-
バイナリ形式のXMLファイルを読...
-
C言語でBMPファイルの内容を表...
-
vba ActiveSheet.pasteを使った...
-
OpenDialog1->FileNameについて
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
「UNCパスはサポートされません...
-
フルパスから最後のディレクト...
-
SWTとSwingの違い
-
ファイル形式またはファイル拡...
-
dataファイルをxtxファイルにす...
-
バッファとは何ですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
エラーの原因は?「この関数の...
-
ソースから参照しているOCXの一...
-
VB.NETでActiveX(OCXファイル)作成
-
VB6で、非表示モジュール(?)の...
-
コンパイルするときに、ファイ...
-
他の.CPPファイルに定義した関...
-
VS2010 ProductVersion 変更
-
VC++でexeファイルが作成できま...
-
bcrypt.h コンパイルエラー
-
VB6.0
-
Visual Basic Net のプロジェク...
-
stdio.hをオープンできない…
-
プリコンパイル?
-
同じソースコードなのにバイナ...
-
Visual Studioでプロジェクトが...
-
ACCESSのEXEを作るのは可能...
-
LSI C-86 v3.30c 試食版について
-
sys/ipc.h や sys/shm.h
-
スタートアップにファイルを登...
おすすめ情報