
RedHatLinux7.3(2.96-110)、gccバージョン(2.96 20000731)にて、
C言語のアプリケーションを初めて作成しています。
そのアプリ内でテキストファイル(日本語あり)を
作成するのですが、どうも期待どおりの結果になりません。
というのも、出来上がったファイルの文字コードが、
EUCではなくShift-JISになってしまっています。
Linuxで作成したアプリをLinuxで実行するのですから、
出来上がるファイルの文字コードはEUCになるはずですよね?
ちなみに、文字コードの確認は「kcc -c XXXXX.log」でおこないました。
もしかして「アプリケーションログを日本語出力する」
なんていうことが、そもそもの過ちなんでしょうか?
ファイル出力には、fopen+fprintfを使っています。
どうしてこのような結果になってしまうのか、ご存知のかた、よろしくお願いします。

No.3ベストアンサー
- 回答日時:
リダイレクトしたファイルがEUCになっているかどうか以下の方法で確認してみてください。
コンソールの場合は、まず、konと入力し、漢字が表示できるようにしてください。その後で、
1.emacs ファイル名
と入力し、漢字が表示されると、左下にEEEが表示されれば
EUC、EESの場合はシフトJISです。
2.cat ファイル名
で正しく漢字が表示されれば、EUCです。
この回答への補足
回答ありがとうございました。
emacsでは-S、catでは文字化けした状態でした。これはやっぱりShiftJISですね。
でも、今やっと、うまくいきました!
結論から言いますと、ソースファイルのいくつかが正常にEUC変換できていなかったみたいです。
すべてのソースファイルのEUC変換をやり直して実行してみましたら、ログファイルは正常にEUCで出力されているようです。
emacsで-E、catで正常に表示されていますので間違いないですよね?
本当にいろいろありがとうございました。
No.4
- 回答日時:
nkf のバグというか文字コードの欠陥なんですが
シフトJISのX0201仮名とEUCが判別できない事があります。
なので入力が必ず シフトJIS と分かっている場合は
nkf -S -e xxx.c > yyy.c
としてみたら如何でしょうか。
また、FTP クライアントにも文字コード変換機能くらい
付いているのが普通だと思います
一部ファイルは EUC で一部ファイルが シフトJIS のような
混乱を避けるためにも、 FTP クライアントでアップする際に
一緒に変換するのが無難だと思います。
この回答への補足
回答ありがとうございます。
nkfのヘルプを見直しました。そういうオプションがあったなんて、ぜんぜん気づきませんでした。
また、FTPソフトも設定を見直そうと思います。

No.2
- 回答日時:
nkfを使用したそうですが、nkf -e xxx.c と入力しただけでは、xxx.cはEUCコードに変換されません。
nkf -e xxx.c > yyy.cと入力してください。
yyy.cがEUCコードに変換されたファイルです。
この回答への補足
回答ありがとうございます。
さきほどの補足にて記述が不足しておりました。
ご指摘のとおり、「nkf -e xxx.c > yyy.c」でリダイレクトはしてあります。すみませんでした。(+_+)
EUC変換に失敗しているのかしら・・・?でも失敗してたらリダイレクト結果も文字化けしてますよね。
No.1
- 回答日時:
その日本語の出所はどこなんでしょう?
出所に問題有りです。
ソースコード中? (ソースの文字コード確認)
外から読み取る? (読み取り元データの文字コード確認)
fprintfの%sは'\0'で文字列終端を探知するのみ。
それ以外は何も考えません。
この回答への補足
回答ありがとございます。
えぇっと、Windowsでソースを作成してLinuxにFTPして、「nkf -e」でEUCに変換しましたのでEUCのつもりです。
このままではEUCに変換なってないんでしょうか?(-_-;)
またよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
ファイル変換
-
WORDのVBAで差し込み印刷時、デ...
-
テキストファイルの一部分を抽...
-
C#で大容量ファイルの一部編集
-
テキストファイル内容の、16進...
-
テキストファイル固定長データ...
-
C言語のソースからコメントを抜...
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
C++によるファイル送受信プログ...
-
【Excel VBA】取り込んだファイ...
-
Thunderbird 受信メールからの...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
エディットボックスの内容をテ...
-
openglで音楽を再生する
-
コマンドプロンプトのテキスト...
-
C++.NET 2003 「空のドキュメ...
-
[C#]FTPでの複数のファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
テキストファイル固定長データ...
-
テキストファイルの特定行の削...
-
Excel VBAが徐々に遅くなる
-
VB(VBA)で、バイナリデータを使...
-
既存のテキストファイルを開く方法
-
WORDのVBAで差し込み印刷時、デ...
-
ファイル変換
-
C言語のソースからコメントを抜...
-
Zbarというソフトについて
-
C#テキストファイルから1バイト...
-
VBA。開いているテキストファイ...
-
C言語でテキストファイルをバイ...
-
テキストファイル内容の、16進...
-
フォーム無しでアプリを作成す...
-
[VB.NET] 処理の高速化を行いた...
-
VBSでテキストファイルの2行目...
-
テキストファイル(英語&日本...
-
StreamReaderで読み込んだファ...
おすすめ情報