2009-10-01から1ヶ月間の記事一覧

jsstr.cpp 内の Utf8ToOneUcs4Char における、冗長な UTF-8 シーケンスの検出処理の問題(bug 511859)

8月終わり頃から取り組んでいたバグの修正と仕様の変更がTrunkにチェックインされました。 実際には、 JavaScriptのdecodeURI(),decodeURIComponent()が%エンコードされた冗長なUTF-8に対して U+FFFD を返すのではなくURIErrorを投げるようにする(bug51476…

Shift_JISの動的に生成されたJavaScriptをUTF-8として解釈した場合に発生する問題

縺ソ" (Shift_JIS) → E3 81 83 5C 22 → ぃ\" (UTF-8)ということで、Shift_JISの2バイト目の5Cを単独の文字として解釈してしまうので、文字列の終端位置を誤認させることが可能です。 昔からよくあるShift_JISの2バイト目の 5Cの問題と同じことですけど。

冗長なUTF-8の判定のテストケースについて考える

判定が実装されているかどうかの表面的なチェックではなく、判定が正しいかどうかをチェックするには、慎重なテストケースの構成が必要です。とりあえず最低でもこれぐらいは必要でしょうが、まだ足りない気がします(特にパターンマッチングで検出させている…

プラス記号を使わない文字列連結

プラス記号を使わずに文字列を結合する こういう手もありますね。Webブラウザ上で実行していない場合は使用できないかもしれないけど。 decodeURIComponent( encodeURIComponent(strB).link(encodeURIComponent(strA)) .replace("<a href=\"","").replace("<A HREF=\"","") .replace("\">","").replace("<\/A>","").</a>…