K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[1762] Re:DIKSAM_book_0_4のLinuxでの実行結果について (その2)
投稿者:ICHIA
2012/01/08 04:59:45

昨年はとてもお世話になりました、 今年もよろしくお願い致します。 連絡が、年を越してすみませんでした。 調査結果を報告します。 >そこで確認ですが、 >①入力ファイルの文字コードは何でしょうか? od -cxかなにかでバイト列は取得できますか? LANG=ja_JP.PCK のSJISです。 ソースのマルチバイトの部分のバイト列です。 println("あいうえおbb"); ^^^^^^^^^^^^^^ 22 82a0 82a2 82a4 82a6 82a8 62 62 22 でした。 >②dvm_mbstowcs_lenに渡す直前の、st_string_literal_bufferのバイト列は取得できますか? st_string_literal_buffer[0]~[12]までの値はわかりますか? > ・dkc_close_string_literal()の文字列長を得る関数の復帰値で、 「-1」が返って来た時に、バイト列を表示してみました。 ============================================== string.c:dkc_close_string_literal()  L47: new_str_len = dvm_mbstowcs_len(st_string_literal_buffer); if (new_str_len < 0) { 追加> for(i=0;i<20;i++) 追加> printf("st_string_literal_buffer[%d]:%x \n",         i,st_string_literal_buffer[i]); ============================================== 結果: st_string_literal_buffer[0]:a0 st_string_literal_buffer[1]:a2 st_string_literal_buffer[2]:a4 st_string_literal_buffer[3]:a6 st_string_literal_buffer[4]:a8 st_string_literal_buffer[5]:62 st_string_literal_buffer[6]:62 st_string_literal_buffer[7]:0 st_string_literal_buffer[8]:0 8バイト目以降は、0x00 になります。 マルチバイトの1バイトが飛ばされているようです。 ・文字列の取得についてですが、  デバック用の文字列を入れて確認しました。  -リテラル(ダブルクォーテーション)の最初と最後の取込みは出来ていました。  -リテラル部分の取込みは、diksam.l Line295 で行われていました。   取込み時にもバイト列を表示させてみましたが、   上記と同じでした。 以上となります。 どうすれば、1バイト目が取り込めるようになるのでしょうか? 現状のdiksam.l で不備はないと思えるのですが・・・ アドバイスをよろしくお願い致します。
[この投稿を含むスレッドを表示] [この投稿を削除]