以前程序用的EUC编码,在页面输入做检查时,使用的都是EUC的字符编码范围。主要是匹配全角カタカナ (?:\xA5[\xA1-\xF6]|\xA1[\xA6\xBC\xB3\xB4]) 和全角空格 (?:\xA1\xA1)。
现在程序改为UTF-8的了,再用上面的方式会很麻烦,需要把输入转成EUC再做。perl的正则表达式支持Unicode的属性,看上去用起来比直接写编码范围要清楚多了。全角カタカナ可以用 \p{Katakana}。而空格可以用 \p{IsSpace},它包括\n,\t等,如果只是匹配空白可以用 \p{IsZs}。