他にうまいアルゴリズムなどがありましたら、教えていただけると嬉しいです。ような文字コード展開を内部処理中で行う場合は、さらに細心の注意が必要です。これらの展開で不正なシーケンスが生成される恐れがあるからです。不正なシーケンスになるのは明らかだと思います。このような処理がある場合は、文字コード展開を正規化の前に処理するか、文字コード展開時に不正なシーケンスが生成されないように工夫する必要があります。パーサーもエスケープシーケンスの展開後に正規化処理を行っています。デコードは簡単なようでいて、実はなかなか奥が深い(?)、というお話でした。それにしても、文字コードっていうのは難儀なものですね。統一されても、我々開発者は思ったほど楽にはならないようです(笑)。不正なシーケンスを正常な文字に置き換える処理は「正規化」と呼ぶのが正しいようですので、該当部分を修正しました。ご指摘くださった皆さん、ありがとうございます。基本的に門外漢なので、専門の方からすると稚拙な部分が多々あるかと思います。お気づきの点があればどうかご指摘ください。脆弱性がまさにこの性質によるものだったようです。変換していたのだと思います。(用語集)さんに詳しい解説がありますので、興味のある方はどうぞ。文字コード展開に関する注意を加えました。パーサーの作成時にはこれを考慮してエスケープの展開後に正規化を挟んだのですが、記事を書くときにはすっかり忘れていました。サロゲートペア領域を不正扱いしない旨の注意書きを入れました。さん、ご指摘ありがとうございます。バグをいくつか修正しました。さんにご指摘いただいたバグを修正しました。Library」の入門書です。