Skip to content

📖 Kanji to Furigana Converter

Convert kanji text into furigana (HTML ruby), hiragana, katakana, or romaji instantly using a built-in 50 KB reading dictionary covering common compounds, major names, and joyo kanji. A token table shows the reading of each word.

100% Free No signup Browser-only Opt-in only 5 languages Dark mode

Browser-only by default. The "high-accuracy mode" checkbox enables MeCab server-side processing (no logs; works for hira/kata/romaji modes).

⚠️ About Accuracy

A built-in lightweight dictionary (about 100 KB) is used. It runs instantly but rare proper nouns and uncommon kanji may appear as unknown (?). Always verify by hand for critical use.

🔒 About Privacy

📖 Where people get stuck

Adds hiragana, katakana or romaji readings to Japanese text containing kanji. By default everything runs in a lightweight in-browser dictionary; only when you explicitly select the high-accuracy mode does it use MeCab, a morphological analyzer, on the server. In both modes, however, the reading is an estimatewhat a morphological analyzer returns is the reading most likely to occur in that context, not the correct one. Personal and place names in particular cannot be resolved in principle. Several readings genuinely exist for the same written form, and which one is right is decided by the person and by the locality, not by any rule of the language.

Case What happens What to do
The reading of a personal or place name cannot be inferred Multiple readings for one written form are the norm, not an exception. 中田 is genuinely read both nakata and nakada; 新谷 can be shintani, araya or niiya; and for 東海林 the majority reading is shoji, which the characters do not suggest at all. Place names behave the same way: 十三 is juso and 放出 is hanaten. A morphological analyzer returns the statistically most frequent reading, so anyone with a minority reading of their own name is guaranteed to be misread. Worse, the error is not conspicuousa plausible reading is inserted, so nobody notices until the person themselves sees it. Being roughly right is the most dangerous property a tool can have in this particular application. Do not infer personal and place names — hold them as data. If a signup form needs a phonetic reading, having the person type it themselves is the only correct method. If you do fill it automatically, always put it in an editable field and make the reading prominent on the confirmation screenthe moment you make it read-only, there is no way left to correct an error. When converting existing data in bulk, treat the output as a candidate rather than adopting it outright, and provide a path for the person to correct it later. Place names can be solved with public dataJapanese postal code datasets include the kana spelling, so address readings can be filled by lookup rather than inference (see also the address splitter).
Some words change reading with the context Common nouns split too. 一日 is either tsuitachi (the first of the month) or ichinichi (one day); 今日 is kyo (today) or konnichi (nowadays); 大人気 is daininki (hugely popular) or otonage (maturity) — completely different meanings. Counters shift even more systematically: in 一本, 三本 and 六本 the same counter is read ippon, sanbon and roppon, so one character takes three forms depending on the number before it. The lightweight in-browser dictionary cannot make this kind of judgement at all, because it looks words up one at a time. The high-accuracy MeCab mode examines the surrounding context and improves matters considerably, but it is still returning a statistical mode. Note also that high-accuracy mode applies only to the hiragana, katakana and romaji outputs; the ruby and table views need token information and therefore use the lightweight dictionary. For running prose, use the high-accuracy mode. The gap against the lightweight dictionary is largest in sentences involving verbs and particles; for a plain list of words the two barely differ. And always read the output backconcentrate on what follows a number, on proper nouns, and on kanji with many readings. Where the accuracy of readings is essential, as in teaching material or subtitles, treat the output as a draft and build human proofreading into the process. Conversely, for a search index of readings or a sort key, a few errors are tolerablethe accuracy you need follows from what you will use it for, so settle that question first and choose the method second.
Every destination has its own kana rules There are not many places where a converted reading can be pasted as-is. Japanese forms follow a convention where a field labelled in katakana wants katakana and one labelled in hiragana wants hiragana, and getting that backwards gets the form returned to you. Financial institutions are stricter still: typically half-width katakana only, a restricted set of permitted symbols, voicing marks counted as separate characters, and their own rules for long vowels and small kana. There is a length limit as well. On top of that, romaji has more than one systempassports use Hepburn, where おおの becomes ONO, while the Kunrei system gives OONO, so the same name comes out spelled differently. There is no such thing as the correct romaji; there is only the system your destination requires. Read the destination example first. The rules are printed on that one page, and there is nothing to guess. Half-width versus full-width katakana can be aligned afterwards with the width converter, so the reliable route is to produce katakana here and adjust the width as a separate step. If you are the one building the form, set inputmode and pattern on the field and state which character classes you acceptguiding people as they type is far kinder than rejecting them afterwards. For a bank transfer, the account name must match the registered name character for characterthis is the one place not to trust a conversion tool; copy exactly what is printed on the passbook or the card.

Only the high-accuracy mode transmits anything. In the default in-browser processing your input never leaves the device, but the MeCab mode sends the text to the server (the input body is not written to logs). Text containing personal data, such as a customer list, should be processed in the default mode or not put into a tool like this at all"it is not transmitted" and "the recipient is trustworthy" are different claims, and when you can choose the former, the former is the principle to follow. Separately, when you embed readings in HTML, use <ruby> and <rt>writing the reading in parentheses after the word makes a screen reader announce the same word twice. With <ruby> it is announced once, and adding <rp> makes the parentheses appear only in environments that do not support ruby. Phonetic annotation is an accessibility feature, not decorationdecide who it is for (children, learners, or only difficult words) before deciding whether to annotate everything.

📖 How to Use

  1. 1
    Paste text
    Type or paste any Japanese text containing kanji, including names and proper nouns.
  2. 2
    Pick output mode
    Choose furigana ruby, hiragana, katakana, romaji (Hepburn or Kunrei), or the token table.
  3. 3
    Convert and copy or download
    Click Convert to see the result; then copy or download. Kanji with no reading appear as ?.

❓ Frequently Asked Questions

What dictionary is used?
A lightweight dictionary (about 100 KB) is bundled with the page JavaScript. It covers about 500 common compounds, 300 surnames, 200 given names, and 1,500 single kanji. There is no server call and no large dictionary download, so conversion is instant.
Are readings of rare names and places accurate?
Words in the dictionary are accurate, but rare names that are not in it are filled in from single-kanji readings, or shown as ? if unknown. Verify manually for critical use.
Hepburn vs Kunrei romaji — what is the difference?
Hepburn (used on Japanese passports) writes shi, tsu, fu — closer to English pronunciation. Kunrei writes si, tu, hu — the regular school style. This tool supports both.
🐛 Found a bug or issue with this tool?

Free to use, no signup. Even just the steps to reproduce are helpful. Reports go directly to the operator and help us fix issues.

* Browser info (UA / screen / language / URL) is sent automatically to help reproduce the issue