K.Maebashi's BBS 削除ページ

以下の投稿を削除します。

[1751] Re:DIKSAM_book_0_4のLinuxでの実行結果について (その2)
返信
投稿者:(ぱ)こと管理人
2011/11/27 23:10:36

はじめまして。 >なので、漢字コードがSJISになっております。 > >LANG環境変数=ja_JP.PCK > >そこで、もちろんなんですが、EUC版もUTF-8版も下記エラーになってしまいます。 >どの様に対応したらよいのか教えて頂けないでしょうか? crowbarやDiksamのソースコードで、SJIS版、EUC版、UTF-8版の違いは 以下の通りです。 (1)error_message.cの文字コードが違う。crowbar, Diksamともに、  エラーメッセージは日本語で出ますし、そのメッセージはerror_message.c内に  埋め込まれています。エラーメッセージも表示前にwchar_tに変換するのですが、  この変換でエラーになっているというのが現状です。 (2)(コンパイラの)Makefileの中に-DEUC_SOURCEとか-DSHIFT_JIS_SOURCEとかの  指定が入っている。SJISでは、「表」のように2バイト目に0x5Cを含む  文字が存在しうるので、いわゆる0x5C問題が起こります。これを回避する  コードが入っています。(-DEUC_SOURCEと-DUTF8_SOURCEの動きは同じです)  これを使用しているのはcrowbar.lまたはdiksam.lです。 (3)お使いのコンパイラがgccの場合は、gcc自体の0x5C問題に引っかかるので、  SJIS版(Windows版)のerror_message.cでは、随所に\が入っています。  Windows版のerror_message.cを使うか、gccのオプション指定をする必要が  あります。 というわけで、対策は以下のようになるかと思います。(試していません) ・error_message.cの文字コードをSJISにする。必要に応じて\を入れて  0x5C問題に対応するか、gccのオプションを指定する。 ・Makefileの-DEUC_SOURCEとかになっているところを「-DSHIFT_JIS_SOURCE」に  変更する。 Windows版のソースを参考にされるとよいのではないかと。
パスワード:

管理者削除