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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- C言語・C++・C# C言語について質問です。 以下のような結果を出すためにはどのようなコードが良いですか?サンプルコード 3 2022/11/01 16:19
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイル固定長データ...
-
テキストファイルの特定行の削...
-
VB(VBA)で、バイナリデータを使...
-
テキストファイルのログをExcel...
-
C#で大容量ファイルの一部編集
-
テキストファイルの一部分を抽...
-
WORDのVBAで差し込み印刷時、デ...
-
ストリームについて。
-
テキストファイル(英語&日本...
-
Excel VBAが徐々に遅くなる
-
既存のテキストファイルを開く方法
-
perlでの特定の値抽出について
-
My.Resourcesにあるテキストフ...
-
PHP ファイルから文字列を検索...
-
StreamReaderで読み込んだファ...
-
テキストファイルをSQLServerデ...
-
Linuxにてテキストファイル出力...
-
VBA。開いているテキストファイ...
-
accessでクエリをExcelにエクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
VBSでテキストファイルの2行目...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
Excel VBAが徐々に遅くなる
-
テキストファイルの特定行の削...
-
Windowsのメモ帳でUTF-8を選択...
-
VB(VBA)で、バイナリデータを使...
-
テキストファイル内容の、16進...
-
エクセルVBAでメールの自動作成...
-
VBA。開いているテキストファイ...
-
[VB.NET] 処理の高速化を行いた...
-
ASP.NET Web上のテキストファ...
-
フォーム無しでアプリを作成す...
-
テキストファイル固定長データ...
-
ファイルのチェックサムを改行...
-
文字コードの変換(JISコードへ)
-
UTF-8とASCIIコードにおける互...
-
C言語でテキストファイルをバイ...
-
Excel+VBAでフランス語を扱いた...
おすすめ情報