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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのEXEを作るのは可能...
-
コンパイルするときに、ファイ...
-
VisualBasicを保存するときにで...
-
VB.NETで他のプロジェクトで作...
-
ユーザー名・作成者について(Vi...
-
C++ Builderでの自作関数について
-
VS2010 ProductVersion 変更
-
srand48? drand48?
-
C#のクラスをVB.netで使用したい!
-
.net を用いて RS232C通信を行...
-
ソースから参照しているOCXの一...
-
C言語初心者の質問失礼します。
-
バッファとは何ですか
-
どんなプログラムを書いても指...
-
【MFC】CFileでSeekした位置か...
-
マイクラでPythonのプログラミ...
-
Access クエリ実行が急に非常に...
-
フルパスから最後のディレクト...
-
ファイル名の先頭にアンダース...
-
EOF
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
コンパイルするときに、ファイ...
-
エラーの原因は?「この関数の...
-
ACCESSのEXEを作るのは可能...
-
他の.CPPファイルに定義した関...
-
VC++でexeファイルが作成できま...
-
ソースから参照しているOCXの一...
-
VB6で、非表示モジュール(?)の...
-
VS2010 ProductVersion 変更
-
VisualBasicを保存するときにで...
-
stdio.hをオープンできない…
-
Visual Studioでプロジェクトが...
-
C#のクラスをVB.netで使用したい!
-
VB.NETでActiveX(OCXファイル)作成
-
同じソースコードなのにバイナ...
-
VB6.0 オブジェクトを一覧で表示
-
VC++ 2005 Intellisenseを更新....
-
ユーザー名・作成者について(Vi...
-
srand48? drand48?
-
VC++で.csprojが開けません。
おすすめ情報