ISO-2022-JP 入力中の ESC 続いてエスケープシーケンス (ESC, '(', 'B' など) が続いた場合も同様の問題があります。
ISO-2022-JP の場合の再現手順。
$ perl -e 'print "\x1Bあ"' |nkf -Wj |iconv -f ISO-2022-JP |od -tx1 0000000 1b e3 81 82 0000004 $ perl -e 'print "\x1Bあ"' |nkf -Wj |nkf -Jw |od -tx1 0000000 1b 1b 24 42 24 22 0000006
e1ccdbdd3d9beb07f35ab0981083c9505230bd53 で修正しました、ありがとうございました。
Shift_JIS 入力中に ESC に続いてマルチバイト文字が現れるとデコードに失敗し、不正なデータが出力されます。 (変換先のエンコードには依存しません)