jaconv
Pure-Python Japanese character interconverter for Hiragana, Katakana, Hankaku, Zenkaku and more
What it is and what it does
jaconv is a pure-Python library for converting between Japanese character representations. It handles transformations between Hiragana and Katakana scripts, conversion between half-width (Hankaku) and full-width (Zenkaku) character forms, and bidirectional transliteration between Japanese kana and romanized alphabet. The library also provides Unicode normalization tailored for Japanese text, including handling of small kana characters and phonetic format conversion for speech synthesis tools like Julius.
The package is designed for text preprocessing and normalization workflows in Japanese natural language processing. It has no external dependencies and runs on Python 2.7 through 3.14, making it straightforward to integrate into existing pipelines. Each conversion function accepts optional parameters to control which character types are affected, allowing fine-grained control over transformations.
Use it for:
- Normalize Japanese text input by converting mixed character widths to consistent full-width or half-width forms before processing.
- Prepare Japanese text for search or indexing by converting between Hiragana and Katakana to handle user input variations.
- Convert user-entered romanized text (romaji) to Hiragana or Katakana for Japanese input method simulation.
- Generate phonetic representations for Japanese text in Julius speech synthesis format.
- Preprocess Japanese datasets for machine learning by standardizing character representation across training data.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
jaconv converts between Japanese character types: Hiragana, Katakana, half-width (Hankaku) and full-width (Zenkaku) characters, plus transliteration to and from romanized alphabet.
Yes. jaconv is a stable, actively maintained library with no dependencies, permissive licensing, and a focused scope for Japanese character conversion. Install it if you work with Japanese text preprocessing, normalization, or transliteration. The recent release cycle and broad Python version support make it reliable for production use.
Install
jaconv on PyPI
pip
pip install jaconvuv
uv add jaconvpoetry
poetry add jaconvInstalling jaconv
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of 2026-02-08 with recent support for Python 3.13 and 3.14.
License in practice
MIT License permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install jaconv
import jaconv
# Hiragana to Katakana
jaconv.hira2kata('ともえまみ')
# => 'トモエマミ'
# Half-width to full-width
jaconv.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# Hiragana to romanized alphabet
jaconv.kana2alphabet('じゃぱん')
# => 'japan'
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 187 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,626,219/month — #2,552 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jaconv-0.5.0-py3-none-any.whl
Keywords: Japanese converter, Japanese, text preprocessing, half-width kana, Hiragana, Katakana, Hankaku, Zenkaku, transliteration, Julius
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
habachenHabachen converts between full-width and…
permissive · top 15,000 on PyPI
mojimojiConverts Japanese text between hankaku…
permissive · top 15,000 on PyPI
pykakasiTransliterates Japanese text (hiragana,…
copyleft · top 5,000 on PyPI
kanjizeConverts between Japanese kanji number…
permissive · top 15,000 on PyPI
misakiConverts written text to phonetic…
permissive · top 15,000 on PyPI
fold-to-asciiConverts Unicode characters outside the basic…
permissive · top 15,000 on PyPI
anyasciiConverts Unicode text to ASCII-only equivalents…
permissive · top 5,000 on PyPI
wetextNormalizes and denormalizes text in Chinese,…
permissive · top 15,000 on PyPI
cutletCutlet converts Japanese text to romaji (Latin…
permissive · top 15,000 on PyPI
hangul-romanizeConverts Korean Hangul text to romanized (Latin…
unclear · top 15,000 on PyPI