The concept of trying to enumerate badness is probably the source of more security bugs than any other idea in computing.
Always enumerate safety. It's usually slightly less convenient, but when you're building something that will be used for generations (as much of this code is likely to be), it's the responsible approach.
What happens when the kernel goes fully to Unicode? It's going to happen someday, if it hasn't already. Thinking "we can blacklist because it's just ASCII" is short-term thinking. It won't always be just ASCII.