Skip to content
UniKit

Fullwidth / halfwidth converter

Convert between fullwidth and halfwidth characters: letters, digits, punctuation, the ideographic space and Japanese katakana (カ ↔ カ, ガ ↔ ガ), with spaces and punctuation as separate options.

Runs in your browserEvery computation happens in your browser — your data never leaves this device.

Result

What this tool does

  • Normalise fullwidth letters and digits pasted out of PDFs, spreadsheets or legacy systems: Hello,世界! 123 → Hello,世界! 123.
  • Prepare halfwidth text for CJK typography: converting punctuation and digits to fullwidth makes them line up with Han characters.
  • Handle Japanese katakana both ways — カタカナ ↔ カタカナ — with voiced kana such as ガ and パ decomposed into base plus dakuten per the Unicode rules.
  • Convert only part of the text: turn off the space or punctuation switch and those characters stay exactly as they were.

Example

Input

Hello,世界! カタカナ 123

Output

Hello,世界! カタカナ 123

Fullwidth ASCII, the ideographic space (U+3000) and katakana are converted; ヵ ヶ ヮ ヰ ヱ ヽ ヾ have no halfwidth form and are kept unchanged.

Frequently asked questions

How does the fullwidth/halfwidth conversion actually work?

The fullwidth ASCII block U+FF01–U+FF5E and halfwidth U+0021–U+007E differ by a fixed offset of 0xFEE0, so they map by plain addition. The ideographic space U+3000 maps to a normal space, and katakana plus punctuation go through the Unicode compatibility mapping table.

Why did ,become a plain comma instead of 、?

Because this is a width conversion, not a punctuation-style conversion. The fullwidth comma U+FF0C sits inside the fullwidth ASCII block, so subtracting the offset gives the halfwidth comma. Use a dedicated Chinese punctuation tool if you want semantic replacements.

What happens if I turn off "convert punctuation"?

Letters and digits still convert, but punctuation is skipped: fullwidth ,。!? stay fullwidth, halfwidth ,.!? stay halfwidth, and the Japanese 。「」、・ ↔ 。「」、・ pairs are left alone. Handy when you only want to strip fullwidth alphanumerics without touching punctuation.

Why does a katakana character become two characters?

Voiced kana such as ガ, パ and ヴ decompose into a base kana plus a dakuten mark, and halfwidth has no single-character form, so ガ turns into ガ. Converting back recombines ガ into ガ, so the length shrinks again.

Does the conversion change meaning, or upload my text?

It only remaps character widths and never changes meaning — the result is still valid UTF-8. Everything runs in JavaScript inside your browser, the page sends no requests, and your text is never uploaded.

Keywords:全角半角fullwidthhalfwidth转换convert假名katakana日文标点

Related tools