def is_zenkaku(s): assert isinstance(s, unicode) try: s = s.encode("euc-jp") except UnicodeError: return False i = 0 while i < len(s): if s[i] < '\x80': # ASCII return False elif s[i] == '\x8e': # JIS X 0201 Katakana return False elif s[i] == '\x8f': # JIS X 0212 Supplementary Kanji i = i + 3 else: # JIS X 0208 i = i + 2 return True