K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>昨年はとてもお世話になりました、 >今年もよろしくお願い致します。 > >連絡が、年を越してすみませんでした。 >調査結果を報告します。 > >>そこで確認ですが、 >>①入力ファイルの文字コードは何でしょうか? 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 で不備はないと思えるのですが・・・ > >アドバイスをよろしくお願い致します。 > > >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!