[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:03087] Re: 文字列を 1byte ごとに処理



HATTORI Masashi <hattori@xxxxxxxxxxxxxxxx> さん、こんにちは。masahito です。

|全然理解できてないんですが、
| 一つ目 => 1文字ずつ取り出して1byte文字じゃなかったら分けて処理
| 二つ目 => 処理できる型(?)に変換してから1byteずつ処理
|というような感じなのでしょうか。

xyzzy内部ではShiftJISコードのまま、1文字づつ処理できるように
されていたはずです。

A    B C    漢   字
41  42 43   8abf 8e9a        char foo[];
  ↓
0041 0042 0043 8abf 8e9a     short foo[];   xyzzy内部表現
こんな感じ。

これだとWinApiを呼び出すときに困るので、私がおねだりして、WinApi
サポートを作ってもらったときに(si:make-string-chunk str)こんな
関数ができた。
この関数が返してくるchunkオブジェクトは char foo[];な1バイト毎の
配列になっている。
詳細は私もよくわかっていません(実は^^;)

あと余談ですが、もし入力がファイルになっているのなら、
CommonLispな関数 (openとか)を使ってバイト毎にアクセスも可能だと
思います。・・・・たぶんこっちの方が移植性はいいと思いますが。

そもそも「URL encodeする関数」これが何を意味するのか、理解でけて
ないので、外しているかもしれないけど^^;
------------------------------------------------------------
逸見雅人    Masahito Henmi  henmi@xxxxxxxxxxxxx
♪あなたの願いも仕事もうまくいきますように・・・

Index Home