piapia123
en

Full-width / Half-width Converter

Text

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

Letters and digits typed with an IME in full-width mode (`ABC123`) often fail where they are used: account names, amounts, verification codes and command-line arguments all expect half-width. This tool converts the whole text in one direction — full-width letters, digits and symbols down to half-width, or the reverse. The line between Chinese and Latin punctuation follows Unicode code points, not what looks Chinese, and that is what decides which characters change; it gets its own FAQ entry below because it is the usual source of confusion. Note also that `。`, `、`, `「」` share code points with the Japanese half-width forms, which is why katakana conversion is off by default.

Features

  • Full-width letters, digits and symbols down to half-width, or the reverse
  • Covers full-width ASCII (U+FF01–U+FF5E) and the ideographic space U+3000
  • Covers the seven full-width currency and symbol variants such as ¥ £ ¢ ₩, which sit outside the ASCII range and are the easiest to miss
  • Optionally converts half-width katakana, merging `ハ` + `゙` into a single `バ`
  • Chinese punctuation `。` `、` `「」` `《》` is left alone — it has no half-width form
  • CJK, emoji and every other non-ASCII character pass through untouched
  • The two directions are inverses: converting and converting back restores the original
  • Updates as you type and copies in one go
  • Everything runs locally in the browser; your text is never uploaded

How to use

  1. Pick a direction: full-width to half-width, or the reverse
  2. Paste the text
  3. For Japanese text, tick the katakana option when you need it
  4. Copy the result

FAQ

Why did my Chinese comma become a Latin comma while the full stop stayed?
Because the boundary follows Unicode code points, not appearance. `,`(U+FF0C), `:`(U+FF1A) and `?`(U+FF1F) are inside the full-width ASCII range (U+FF01–U+FF5E) — they genuinely are the full-width forms of `,` `:` `?`, so they convert. But `。`(U+3002), `、`(U+3001), `「」`(U+300C/300D) and `《》`(U+300A/300B) live in a different range: they are independent Chinese punctuation with no half-width form, so they stay. This is not an optional extra — it is what "full-width to half-width" means. If you need to change only letters and digits and leave punctuation alone, this tool cannot do it.
Why is the katakana option separate, and off by default?
Because `。`(U+3002), `、`(U+3001), `「」` and `・` share code points with the Japanese half-width forms `。` `、` `「」` `・`. Turning it on converts a Chinese full stop into the small half-width circle and the enumeration comma into a small tick — pure damage for Chinese text, and it looks like the tool is broken. So it defaults to off: leave it off for Chinese, turn it on for Japanese. Once on, pairs like `ハ`+`゙` merge correctly into `バ`, and the small kana and long vowel mark each have their own mapping.
What is a full-width space?
It is U+3000, the "ideographic space" — the same width as one CJK character, used for alignment in Chinese and Japanese typesetting. A Latin space is U+0020, half that width. Converting to half-width turns U+3000 into an ordinary space; converting to full-width turns an ordinary space into U+3000, which is why text looks wider after a half-to-full conversion.
Why was ¥ converted as well?
Because `¥`(U+FFE5) is the full-width form of `¥`(U+00A5). It is not in the same range as `$`(U+FF04) — that one can be shifted to `$` by subtracting 0xFEE0, while the half-width yen lives in the Latin Extended block and has to be listed individually. There are seven such symbols (`¥ £ ¢ ₩ ¬  ̄ ¦`), and missing them shows up as "the ¥ in my amount did not convert while the $ next to it did", which reads as flaky behaviour.
Is my text uploaded?
No. The conversion happens entirely in browser memory; the page makes no requests and works offline.

Related tools