Full-width to Half-width: Fixing Numbers and Code
Digits copied from a Japanese input method look perfectly normal and are still rejected by a program. Full-width and half-width are different code points, and only one is treated as a number.
Open the tool:Full-width to Half-width
When you actually need it
Numbers are the classic problem. Full-width 123 looks like 123 but sits at different code points, so a spreadsheet treats it as text, a script fails to parse it, and a search does not match. Phone numbers, amounts, and product codes copied from Japanese sources often arrive in this state.
Code and command lines have the same issue. A full-width space, bracket, or semicolon pasted into source is a syntax error that is very hard to spot. Tidying English and symbols copied from old documents, PDFs, or chat threads calls for the same fix.
- Numbers a spreadsheet stores as text
- IDs and amounts copied from Japanese documents
- Full-width spaces and brackets inside code
What the mapping covers
The mapping is a code point range: the full-width ASCII variants from U+FF01 to U+FF5E are shifted down by 0xFEE0, and the ideographic space U+3000 becomes an ordinary space. Chinese characters, kana, and half-width katakana are outside the range and stay as they are.
Full-width punctuation inside that range changes too: the full-width comma U+FF0C, full stop U+FF0E, exclamation and question marks, and parentheses all become ASCII. Japanese 、 and 。 sit at U+3001 and U+3002 and are unaffected. A full-width space turned into a normal space also removes first-line indentation.
- Full-width ASCII shifts down by 0xFEE0
- U+3000 becomes an ordinary space
- 、 and 。 are outside the range
Alternatives and when not to use it
If only the numbers matter, find-and-replace or VALUE() in a spreadsheet is enough; if the goal is consistent typing, switching the input method is faster. Japanese body text usually wants half-width digits and letters with full-width punctuation, so converting a whole passage overshoots.
For the opposite requirement, forms that insist on full-width input, use the half-width to full-width converter. Both directions are mechanical code point mappings that ignore context, so keep a backup before touching code, passwords, or URLs.
FAQ
Why can a program not read full-width digits?
Full-width and half-width digits are different Unicode code points. They look alike but have different values, and most parsers accept only ASCII 0-9, treating full-width digits as ordinary text or failing outright.
The Japanese punctuation changed too. What now?
Full-width commas, full stops, exclamation marks, and question marks are inside the converted range. 、 and 。 are not. If the layout needs full-width punctuation, change those back or convert only the digits.
Are Chinese characters and kana affected?
No. The conversion covers U+FF01 to U+FF5E and the U+3000 space only, so Chinese characters, hiragana, and katakana are left exactly as they are.
Related tool:Full-width to Half-width