US-ASCIIかどうかの判定で0x20-0x7eという範囲指定じゃ駄目なんだな。
うぅISO646とか生まれる前からの呪いがまだ続いているよ……
ISO-8859系を前提にいれても無理やり入ってくるシフトJIS……
0x5cと0x7eは外しておいたほうが安全だな。