Japanese Full-Width / Half-Width Converter

Convert between full-width and half-width ASCII in Japanese text

Converts full-width ASCII letters, digits and punctuation (A-Z, 0-9) to half-width and back, with correct half-width katakana conversion including recombining dakuten and handakuten marks.

What are full-width and half-width characters?

Full-width (zenkaku) characters occupy the same square cell as a kanji, while half-width (hankaku) characters take half that width. Japanese text often mixes full-width Latin letters and digits with normal half-width ASCII, which causes inconsistent data.

Japanese text frequently mixes full-width (zenkaku) and half-width (hankaku) characters, which breaks search and data consistency. This converter normalises ASCII and katakana between the two widths using the correct Unicode mappings.

How it works

Full-width ASCII is a clean offset of plain ASCII, so the conversion is arithmetic rather than a lookup table:

full-width ASCII  U+FF01..U+FF5E  =  ASCII U+0021..U+007E + 0xFEE0
full-width space  U+3000          <-> half-width space U+0020
half-width katakana U+FF61..U+FF9F -> full-width katakana (table)
   カ + ゙ (dakuten)    -> ガ
   ハ + ゚ (handakuten) -> パ

To go from full-width to half-width, subtract 0xFEE0; to go the other way, add it. For half-width katakana the tool uses a mapping table and looks ahead one character to recombine a trailing voiced or semi-voiced mark into the single composed kana.

Tips and example

Hello 2026 converts to Hello 2026, and half-width ガイド converts to ガイド. Normalise ASCII to half-width and katakana to full-width before indexing user input, so that and A, or テスト and テスト, are treated as the same string. Apply the same normalisation to both the stored data and the query.