setlocale() と isalpha() ではまる

setlocale()とか使ったこと無かったから知らんかったが、うっかりやってしまった。

_tsetlocale(LC_CTYPE, _T(""));

isalpha() の結果が setlocale() しなければ、 0x41〜0x5A と 0x61〜0x7A が 1 になり、
上のような setlocale() をしてると 0xA6-0xDF も 1 になるて。


isalnum()も同じで、英数字以外をアレする処理を書いてたのが誤動作しまくり。