Chinese full-width ↔ half-width punctuation converter. Converts marks only in Chinese context, leaving decimals, URLs and e-mail addresses intact. Optional digit/letter conversion.
Chinese Punctuation Converter (全角 ↔ 半角)
How to use
Pick direction
Full → half-width, or half → full-width. Half → full converts marks only where the text around them is Chinese; English phrases, decimals, URLs and e-mail addresses are left as they are.
Pick what to convert
"Punctuation" and "Digits & ASCII letters" are independent: with only the second ticked, just 0-9, A-Z and a-z change.
Pick quotation marks
In half → full, " and ' are converted in pairs, to “ ” ‘ ’ (GB/T 15834-2011) or 「 」『 』 (Taiwan's Ministry of Education handbook).
Paste text, copy the result
Conversion is live; Copy takes the output.
Full-Width and Half-Width: What the Terms Mean for Chinese Punctuation
In Unicode, "full-width" is a property of each character (its East Asian Width). The full-width ASCII forms U+FF01–FF5E correspond one-to-one to ASCII U+0021–007E, and the ideographic space U+3000 to the ordinary space U+0020. So the Chinese comma "," (U+FF0C) and the English comma "," (U+002C) are two different characters.
Not every Chinese mark has that property, though. “ ” ‘ ’ — … · are classed "ambiguous" in Unicode, so the font decides how wide they look; 「 」《 》。、 are wide by definition, and ,:;!?( ) are full-width forms.
The standards set positions, not "full-width"
The mainland's GB/T 15834-2011 《标点符号用法》 is a recommended national standard, in force since 1 June 2012. It does not say "use full-width punctuation". It says where each mark sits in the character cell: the full stop, comma, enumeration comma, semicolon and colon take one cell, at the lower left (5.1.1); the question and exclamation marks one cell, at the left (5.1.2); the dash and the ellipsis two cells (5.1.4, 5.1.5); the interpunct half a cell, vertically centred (5.1.7). Taiwan's Ministry of Education handbook, 《重訂標點符號手冊》修訂版 (2008), puts the same marks in one cell, centred (居正中).
Both govern only the Chinese text: GB/T 15834 applies to "the Chinese part" of mixed Chinese–foreign text (§1), and Taiwan's handbook says that quoted Western text follows Western punctuation.
What this converter does
Half → full: , . ! ? : ; ( ) convert only when the text around them is Chinese, so 3.14, 1,000, 10:30, URLs and e-mail addresses are left alone. " and ' are converted in pairs, the first to an opening mark and the second to a closing one; an apostrophe as in McDonald's is not touched. ... becomes ……, -- between Chinese becomes ——, and a space never becomes the full-width U+3000. Full → half: the interpunct · is kept (马克·吐温), and ‧ or . between two Han characters becomes ·; 「」 become "" and 『』 become '', so the nesting survives.
Which mapping
Digits, letters, the 32 symbols of U+FF01–FF5E and U+3000 convert by Unicode's own compatibility mapping (<wide>, the one NFKC normalisation applies). Unicode gives 。、“ ” ‘ ’「 」『 』《 》〈 〉【 】〔 〕—— no ASCII equivalent, so where those go is our choice: 。→ . 、→ , “ ” 「 」→ " ‘ ’ 『 』→ ' 《 》 〈 〉→ < > 【 】 〔 〕→ [ ] ——, ── and ⸺ → -- ⸻ → --- ‖ → | ︰→ : ‧ → ·. All processing is in-browser; no text leaves your device.
Width classes, cell positions, and the comma that breaks code
The Chinese comma "," is U+FF0C; the English comma "," is U+002C. Unicode pairs them as a full-width / half-width couple (the <wide> mapping), which is why they convert; but they are two code points, and searching for "," will not find ",".
The mainland's quotation marks “ ” have no full-width character of their own. They are the same characters English uses, with East Asian Width "ambiguous", so the font decides how wide they look (since Unicode 16.0 a variation selector, U+FE01, can request a full-width rendering). Taiwan's 「 」 are wide by definition.
GB/T 15834-2011 sets positions, not widths: the full stop, comma, enumeration comma, semicolon and colon take one character cell, at the lower left (5.1.1). Taiwan's 2008 handbook 《重訂標點符號手冊》 centres the same marks in the cell. Neither contains a rule that punctuation "must be full-width".
The ideographic space U+3000 is one character, one Han cell wide. W3C clreq 6.3.3 puts at most 1/4 em between Han and Latin text, or an ordinary U+0020 space, so in half → full this tool never turns a space into U+3000.
Code needs half-width. In Python 3.9, print("Hello") fails with SyntaxError: invalid character '(' (U+FF08), and print("Hello") with invalid character '"' (U+FF02). One full-width bracket stops the line from running.
user@example.com is not [email protected]: the full-width letters, @ and . are different code points. Full → half with both "Punctuation" and "Digits & ASCII letters" ticked restores it; half → full leaves URLs and e-mail addresses alone.
An interpunct is not a full stop. GB/T 15834's 间隔号 is · and takes half a cell (5.1.7); Taiwan's handbook writes it . in a full cell, as in 馬克.吐溫 (Mark Twain). So full → half keeps 马克·吐温 as it is, and turns 馬克.吐溫 into 馬克·吐溫 rather than 馬克.吐溫.
The Chinese ellipsis is six dots. GB/T 15834-2011's foreword says the ellipsis was unified as six dots, …… (4.11.2), taking two cells (5.1.5). Three ASCII full stops are not a Chinese ellipsis, so this tool turns ... in Chinese text into …….
The two standards nest quotation marks in opposite order. GB/T 15834 puts double marks outside and single inside (4.8.3.4): “…‘…’…”. Taiwan's handbook starts with the single corner bracket and puts the double one inside: 「…『…』…」.
Two Hong Kong government documents use different quotation marks: the Education Bureau's 《小學中國語文建議學習重點(試用)》 (2009) uses 「」; the Civil Service Bureau's 《政府公文寫作手冊(第三版)總論》 (2019) uses “ ” and refers readers to GB/T 15834.
Frequently Asked Questions
-
No. All conversion happens in your browser; no text is uploaded.
-
Chinese punctuation for Chinese sentences, English punctuation for English. GB/T 15834-2011 covers only "the Chinese part" of mixed text, and Taiwan's handbook says quoted Western text follows Western punctuation. Code, URLs, e-mail addresses and ISBNs are not Chinese sentences, so they stay half-width.
-
Because they are not Chinese punctuation. The tool converts , . : and the rest only where the text around them is Chinese: a point between digits (3.14), a thousands comma (1,000), a clock colon (10:30), URLs and e-mail addresses are kept, while a full stop that ends the sentence still becomes 。, as in 约为3.14. → 约为3.14。.
-
They are different Unicode characters. U+3000 is one Han cell wide; the width of U+0020 depends on the font. W3C clreq puts an ordinary space, or at most 1/4 em, between Han and Latin text, so half → full never turns a space into U+3000, and full → half turns U+3000 into U+0020.
-
Convert again in the other direction (full → half → full). A mainland-style passage comes back as it was, but distinctions half-width text cannot hold are lost: 、 becomes "," and comes back as ,, 〈〉 come back as 《》, and 【】〔〕 become [ ] and stay [ ]. Taiwan's 「」『』 come back only if you pick 「 」『 』 under Quotation marks, and its ── comes back as ——.
-
It converts only 0-9, A-Z and a-z and their full-width forms (0-9, A-Z, a-z), 62 characters each way, and never punctuation, which the "Punctuation" box controls on its own.
-
Unicode has U+FF64 "、" (HALFWIDTH IDEOGRAPHIC COMMA), but no ASCII equivalent. The tool maps 「、」 to the nearest ASCII, ","; 《》 and 〈〉 likewise have no ASCII equivalent and become < >.
-
This tool handles plain text only: paste the text in and copy the result back out.
-
There is no server API; conversion runs entirely in the browser. Every rule is in the public file /tools/_kernel/zh-punct-kernel.js.
Pick up where you left off
Stored only in this browser — never sent to our servers.