jaconvV2 (Japanese Converter) can detect whether a character is Zenkaku or Hankaku, and also support interconvertion for Hiragana, Katakana, Hankaku (half-width character) and Zenkaku (full-width character)
Japanese README is available.
$ pip install jaconvV2
See also document
import jaconvV2
# Test if Zenkaku
jaconvV2.is_zen('D')
# => True
# Test if Hankaku
jaconvV2.is_han('D')
# => True
# Hiragana to Katakana
jaconvV2.hira2kata('ともえまみ')
# => 'トモエマミ'
# Hiragana to half-width Katakana
jaconvV2.hira2hkata('ともえまみ')
# => 'トモエマミ'
# Katakana to Hiragana
jaconvV2.kata2hira('巴マミ')
# => '巴まみ'
# half-width character to full-width character
# default parameters are followings: kana=True, ascii=False, digit=False
jaconvV2.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# half-width character to full-width character
# but only ascii characters
jaconvV2.h2z('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# half-width character to full-width character
# but only digit characters
jaconvV2.h2z('123', kana=False, ascii=False, digit=True)
# => '123'
# half-width character to full-width character
# except half-width Katakana
jaconvV2.h2z('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# an alias of h2z
jaconvV2.hankaku2zenkaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# full-width character to half-width character
# default parameters are followings: kana=True, ascii=False, digit=False
jaconvV2.z2h('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# full-width character to half-width character
# but only ascii characters
jaconvV2.z2h('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# full-width character to half-width character
# but only digit characters
jaconvV2.z2h('123', kana=False, ascii=False, digit=True)
# => '123'
# full-width character to half-width character
# except full-width Katakana
jaconvV2.z2h('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# an alias of z2h
jaconvV2.zenkaku2hankaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# normalize
jaconvV2.normalize('ティロ・フィナ〜レ', 'NFKC')
# => 'ティロ・フィナーレ'
# Hiragana to alphabet
jaconvV2.kana2alphabet('じゃぱん')
# => 'japan'
# Alphabet to Hiragana
jaconvV2.alphabet2kana('japan')
# => 'じゃぱん'
# Katakana to Alphabet
jaconvV2.kata2alphabet('ケツイ')
# => 'ketsui'
# Alphabet to Katakana
jaconvV2.alphabet2kata('namba')
# => 'ナンバ'
# Hiragana to Julius's phoneme format
jaconvV2.hiragana2julius('てんきすごくいいいいいい')
# => 't e N k i s u g o k u i:'
jaconvV2.normalize method expand unicodedata.normalize for Japanese language processing.
'〜' => 'ー' '~' => 'ー' "’" => "'" '”'=> '"' '“' => '``' '―' => '-' '‐' => '-' '˗' => '-' '֊' => '-' '‐' => '-' '‑' => '-' '‒' => '-' '–' => '-' '⁃' => '-' '⁻' => '-' '₋' => '-' '−' => '-' '﹣' => 'ー' '-' => 'ー' '—' => 'ー' '―' => 'ー' '━' => 'ー' '─' => 'ー'