Wikiでマルチバイト - Scheme VM を書く
Wiki でマルチバイト対応。
予想外にはまりポイントがあった。
いわゆる URI encode/decode が絡む場合にどのように内部エンコーディングに変換するかが悩みどころになる。
今回は encode は output-string-port への write-byte と input-string-port からの read-byte 、decode は write-byte を用いる。
string-port に対する read-byte/write-byte はなんだか歪な感じがして、さんざん迷ったが結局実装することに。あとでまた振り返ることになると思う。
UTF-8 のバイト列を write-byte していくと、特定バイト数たまると UCS-4 文字になりそれが文字列に apppend されるというあまり直感的ではない仕様だし。
これを実装したおかげで日本語タイトルのページも作れるようになったよ。