EN
首页 分类 全角半角转换

全角半角转换

全角字符与半角字符互转

常见问题

全角和半角到底差在哪?

同一个字符占的宽度不同:全角占两格(中文排版用),半角占一格。编码上全角字母数字落在另一段码位。

中文标点会被改成英文标点吗?

会变一部分。只有 U+FF01–U+FF5E 这段「全角 ASCII 变体」会转,所以 ,!?;:() 会变成 ,!?;:(),而 、。《》 和中文引号不在这个区间,保持原样。

什么场景需要这个工具?

从 PDF、Excel 或旧系统复制出来的数字字母常常是全角的,粘进代码或搜索框会报错,用它一键修正。

关于这个工具

转换的判定很干脆:码位落在 U+FF01–U+FF5E 这一段就减 0xFEE0 得半角,U+3000(全角空格)换成普通空格;反方向加回去。除此之外一个字符都不动,汉字、假名、Emoji 全部原样通过。

这段区间是「全角 ASCII 变体」,所以结果是可预期的:字母、数字、!?,;:() 这类全角标点会转成半角,而顿号「、」(U+3001)、句号「。」(U+3002)、书名号、中文引号、破折号、省略号都不在这个区间,转换后保持不变。想让标点也统一成中文样式,这不是它的职责范围。

最常见的场景是从 PDF、Excel、老系统或某些输入法里复制出来的数字和字母是全角的 —— 123、ABC 粘进代码、命令、搜索框或表单校验会直接被判非法,肉眼看却和半角几乎一样。这类「看起来没问题但校验不通过」的输入,先用它过一遍最快。

两个使用细节:半角转全角只处理半角字符,已经是全角的不会叠加(可以放心重复执行);转换是按码位映射,不做语义判断,所以本来想保留全角的标点也会被一起转掉 —— 处理完记得扫一眼标点。统计栏给出实际改动的字符数,为 0 说明输入里没有该方向的字符。