Fullwidth to Halfwidth Converter (and Back)
Switch text between fullwidth and halfwidth characters, option by option
Runs in your browser · nothing is uploaded
Direction
30 characters changed.
What it is
East Asian fonts have two widths. Fullwidth characters take the same square cell as a Chinese character, while halfwidth characters are the narrow ones you type on a US keyboard. Unicode keeps separate code points for both, so ABC and ABC are different text even though they read the same. That difference causes real trouble: copied product codes fail to match, 2026 will not add up in a spreadsheet, and sign-up forms refuse an email address typed with a Japanese input method.
This converter switches text in either direction and lets you pick exactly which groups change: letters and digits, punctuation, the ideographic space, halfwidth katakana, halfwidth Hangul jamo, the currency and sign symbols, and curly quotes. Han characters, hiragana and Korean syllables pass through untouched, so you can paste a whole document without worrying about the parts you want to keep.
How to use
- Choose Full → half width or Half → full width.
- Tick the groups you want converted. Everything except halfwidth Hangul jamo and curly quotes starts switched on.
- Paste your text. The result appears below with a count of changed characters.
- Copy the result, or press “Use result as input” to flip the direction and keep working on it.
How it works
- Letters and digits: U+FF21–FF3A, U+FF41–FF5A and U+FF10–FF19 map to A–Z, a–z and 0–9 and back. The two ranges sit exactly 0xFEE0 apart.
- Punctuation and symbols: the rest of U+FF01–FF5E maps to U+0021–007E in the same order, for example ! to !, \ to \ and ~ to ~. Other fullwidth brackets such as ⦅⦆ are not converted.
- Spaces: U+3000 and U+0020 swap. Tabs and line breaks are kept.
- Halfwidth katakana: going to full width, each character in U+FF61–FF9D becomes its NFKC form, which also turns 。「」、・ into 。「」、・. A sound mark ゙ or ゚ that can combine with the kana before it is merged into one character (ガ → ガ, パ → パ, ヴ → ヴ); one that cannot becomes ゛ or ゜. Going to half width, katakana become halfwidth, and voiced kana are split with NFD into two characters (ガ → ガ). Kana with no halfwidth form (ヰ, ヱ, ヵ, ヶ), hiragana and the punctuation 。「」、・ stay as they are. The mapping is built from Unicode normalization data in your browser rather than from a typed-in table.
- Halfwidth Hangul jamo (off by default): U+FFA0–FFDC and the Hangul compatibility jamo, paired by matching NFKC forms.
- Symbols: ¢£¬ ̄¦¥₩ and ¢£¬¯¦¥₩ swap.
- Curly quotes (off by default): “ ” become “ and ‘ ’ become ’, applied before the width step.
- Up to 200,000 characters (JavaScript string length) per conversion.
Examples
| Direction | Input | Output |
|---|---|---|
| Full → half | ABC 123! | ABC 123! |
| Full → half | $50 (sale) | $50 (sale) |
| Full → half | ガイドブック | ガイドブック |
| Half → full | ガギ パン | ガギ パン |
| Half → full | Hello, 2026 | Hello, 2026 |
| Full → half, quotes on | “Hi” 「東京」 | “Hi” 「東京」 |
Converting full to half width also changes Chinese punctuation such as , and !. To convert only letters and digits in a Chinese or Japanese passage, untick punctuation and spaces first.
FAQ
Will Chinese, Japanese or Korean text be changed?
Han characters, hiragana and Korean syllables are never changed. Only characters that have a fullwidth/halfwidth pair are converted, and each group has its own checkbox. Korean letters such as ㄱ or ㅏ are only touched when the halfwidth Hangul jamo option is on, which it is not by default.
Why does my spreadsheet not treat 2026 as a number?
Fullwidth digits look like digits but are different characters, so spreadsheets, search boxes and form validators often reject them. Convert full to half width and they become plain 0–9. Keep the punctuation option on if commas and brackets should change too.
What exactly does the curly quote option change?
It replaces “ and ” with a straight double quote and ‘ and ’ with a straight apostrophe. Corner brackets 「」『』 and every other quote mark stay as they are. It runs before the width conversion, so with Half → full and punctuation ticked the straight quotes then become " and '.
Can it break emoji?
No. Text is checked one visible character at a time, and any cluster that contains a pictograph, keycap mark, flag, skin tone, zero-width joiner or emoji variation selector is left alone. The digit in 1️⃣ stays a plain 1.
How is the changed-character count worked out?
It counts characters of the original text that were replaced by something else. When ガ (two characters) becomes ガ it counts as 2; when ガ is split into ガ it counts as 1.
Is my text uploaded?
No. The conversion runs entirely in your browser and nothing is sent or stored.