jaconv
Pure-Python Japanese character interconverter for Hiragana, Katakana, Hankaku, Zenkaku and more
Rank: #2421Downloads: 2,568,555 (30 days)Stars: 341Forks: 33
Description
jaconv
==========
|version| |pyversion| |license| |download| |usedby| |githubstars| |nowar| |nonuke|
jaconv (Japanese Converter) is interconverter for Hiragana, Katakana, Hankaku (half-width character) and Zenkaku (full-width character)
`Japanese README <https://github.com/ikegami-yukino/jaconv/blob/master/README_JP.rst>`_ is available.
INSTALLATION
==============
::
$ pip install jaconv
USAGE
============
See also `document <http://ikegami-yukino.github.io/jaconv/jaconv.html>`_
.. code:: python
import jaconv
# Hiragana to Katakana
jaconv.hira2kata('ともえまみ')
# => 'トモエマミ'
# Hiragana to half-width Katakana
jaconv.hira2hkata('ともえまみ')
# => 'トモエマミ'
# Katakana to Hiragana
jaconv.kata2hira('巴マミ')
# => '巴まみ'
# half-width character to full-width character
# default parameters are followings: kana=True, ascii=False, digit=False
jaconv.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# half-width character to full-width character
# but only ascii characters
jaconv.h2z('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# half-width character to full-width character
# but only digit characters
jaconv.h2z('123', kana=False, ascii=False, digit=True)
# => '123'
# half-width character to full-width character
# except half-width Katakana
jaconv.h2z('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# an alias of h2z
jaconv.hankaku2zenkaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# full-width character to half-width character
# default parameters are followings: kana=True, ascii=False, digit=False
jaconv.z2h('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# full-width character to half-width character
# but only ascii characters
jaconv.z2h('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# full-width character to half-width character
# but only digit characters
jaconv.z2h('123', kana=False, ascii=False, digit=True)
# => '123'
# full-width character to half-width character
# except full-width Katakana
jaconv.z2h('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# an alias of z2h
jaconv.zenkaku2hankaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# normalize
jaconv.normalize('ティロ・フィナ〜レ', 'NFKC')
# => 'ティロ・フィナーレ'
# Convert small Hiragana or Katakana to normal size
jaconv.enlarge_smallkana('わぁい')
# => 'わあい'
jaconv.enlarge_smallkana('きょういっぱい', ignore='っ')
# => 'きよういっぱい'
# Hiragana to alphabet
jaconv.kana2alphabet('じゃぱん')
# => 'japan'
# Alphabet to Hiragana
jaconv.alphabet2kana('japan')
# => 'じゃぱん'
# Katakana to Alphabet
jaconv.kata2alphabet('ケツイ')
# => 'ketsui'
# Alphabet to Katakana
jaconv.alphabet2kata('namba')
# => 'ナンバ'
# Hiragana to Julius's phoneme format
jaconv.hiragana2julius('てんきすごくいいいいいい')
# => 't e N k i s u g o k u i:'
NOTE
============
jaconv.normalize method expand unicodedata.normalize for Japanese language processing.
.. code::
'〜' => 'ー'
'~' => 'ー'
"’" => "'"
'”'=> '"'
'“' => '``'
'―' => '-'
'‐' => '-'
'˗' => '-'
'֊' => '-'
'‐' => '-'
'‑' => '-'
'‒' => '-'
'–' => '-'
'⁃' => '-'
'⁻' => '-'
'₋' => '-'
'−' => '-'
'﹣' => 'ー'
'-' => 'ー'
'—' => 'ー'
'―' => 'ー'
'━' => 'ー'
'─' => 'ー'
.. |pyversion| image:: https://img.shields.io/pypi/pyversions/jaconv.svg
.. |version| image:: https://img.shields.io/pypi/v/jaconv.svg
:target: http://pypi.python.org/pypi/jaconv/
:alt: latest version
.. |license| image:: https://img.shields.io/pypi/l/jaconv.svg
:target: http://pypi.python.org/pypi/jaconv/
:alt: license
.. |download| image:: https://static.pepy.tech/personalized-badge/jaconv?period=total&units=international_system&left_color=black&right_color=blue&left_text=Downloads
:target: https://pepy.tech/project/jaconv
:alt: download
.. |usedby| image:: https://img.shields.io/github/search?query=import%20jaconv%20language%3Apython&label=Used%20in%20GitHub
:target: https://github.com/search?q=import+jaconv+language%3Apython&type=code
:alt: GitHub code search count
.. |githubstars| image:: https://img.shields.io/github/stars/ikegami-yukino/jaconv
:target: https://github.com/ikegami-yukino/jaconv
:alt: GitHub Repo stars
.. |nowar| image:: https://img.shields.io/badge/%F0%9F%A4%9D%20NO%20WAR-FF0000?style=plastic
:alt: NO WAR budge
.. |nonuke| image:: https://img.shields.io/badge/%E2%98%A2%20NO%20NUKE-FFFF00?style=plastic
:alt: NO NUKE budge
CHANGES
=======
0.5.0 (2026-02-08)
-------------------
- Add new func. enlarge_smallkana.
- The alphabet2kana func. converts "si" to "し".
- Fix conversion bugs in alphabet2kana and kana2alphabet func.
- Fix bugs about small-kana in kana2alphabet func.
- Add docstring to alias functions
0.4.1 (2025-11-30)
-------------------
- port static configs to setup.cfg (thanks @eli-schwartz)
- migrate testsuite to pytest (thanks @eli-schwartz)
- Support Python 3.13 and 3.14
0.4.0 (2024-07-26)
-------------------
- Support Python 3.12
- Add stub files according to PEP 561 for mypy (thanks @ernix)
0.3.4 (2023-02-18)
-------------------
- Fix to support Python2.7 ~ 3.4 (thanks @manjuu-eater)
- Support Python 3.11
0.3.3 (2022-12-31)
-------------------
- Support Python 3.10
- Re-support Python2.7 ~ 3.4 (thanks @manjuu-eater)
- Fix z2h, h2z all flag off bug (thanks @manjuu-eater)
0.3.1 (2022-12-14)
-------------------
- Fix alpha2kana infinite loop bug (thanks @frog42)
0.3 (2021-03-29)
-------------------
- Fix bug (alphabet2kana) thanks @Cuddlemuffin007
- Support Python 3.8 and 3.9
- Add handy functions: alphabet2kata and kata2alphabet. thanks @kokimame
- Add function for julius: hiragana2julius
0.2.4 (2018-02-04)
-------------------
- Fix bug (kana2alphabet)
- Support Python 3.7
- No longer support Python 2.6
- Add aliases of z2h -> zenkaku2hankaku and h2z -> hankaku2zenkaku
0.2.3 (2018-02-03)
-------------------
- Fix bugs (alphabet2kana, kana2alphabet) thanks @letuananh
0.2.2 (2018-01-22)
-------------------
- Fix bug (kana2alphabet) thanks @kokimame
- Support Python 3.6
0.2.1 (2017-09-14)
-------------------
- Fix bugs (alphabet2kana, kana2alphabet)
0.2 (2015-04-02)
------------------
- Change module name jctconv -> jaconv
- Add alphabet and hiragana interconvert (alphabet2kana, kana2alphabet)
0.1.1 (2015-03-12)
------------------
- Support Windows
- Support Python 3.5
0.1 (2014-11-24)
------------------
- Add some Japanese characters to convert table (ゝゞ・「」。、)
- Decresing memory usage
- Some function names are deprecated (hankaku2zenkaku, zenkaku2hankaku, H2K, H2hK, K2H)
0.0.7 (2014-03-22)
------------------
z2h and h2z allow mojimoji-like target character type determination.
Bug fix about Half Kana conversion.