中英标点互转工具
把中文的「,。!?;:()」换成英文的「,.!?;:()」,或反向替换。英文转中文时会按开闭配对处理引号,并刻意放过小数点与千分位逗号——3.14 不会被改成 3。14。中英混排、从别人文档复制内容时最常见的一类格式问题,就是它。
从 PDF 复制的文字带着全角标点、中文稿件要贴进英文环境、代码注释里混着「,」导致编码报错——中英标点混排是文本处理最高频的格式问题。本工具双向互转:中文「,。!?;:()」与英文「,.!?;:()」一一对应,英文转中文时引号按开闭配对。
刻意的保护规则要知道:小数点与千分位逗号不会被转换——3.14 不会变成 3。14,1,000 不会变成 1,000;这是「智能放过」,宁可不转也不破坏数字。全角空格、书名号等无英文对应的符号保持原样;转换后看统计里的改动处数,确认没有误伤。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 选方向:中文 → 英文(贴进代码/英文文档),或英文 → 中文(中文稿件)。
- 粘贴内容,结果即时更新,统计显示改动处数。
- 核对数字与引号:小数点、千分位被保护;引号按开闭配对。
- 复制结果;重要稿件建议通读一遍再使用。
计算原理与示例
基本用法
选方向、粘内容,结果即时更新,统计里会给出这次改动了多少处。方向怎么选看目标:要贴进英文环境(代码注释、英文文档、GitHub 描述)就选「中文 → 英文」;要写中文稿件、需要视觉上更饱满的全角标点,就选「英文 → 中文」。
引号为什么要配对
英文里引号是同一个字符承担开与关两个角色(单引号同理),而中文区分「“”」与「‘’」。反方向替换时必须按出现顺序配对——第一个双引号判为前引号、第二个判为后引号,否则句子里会出现「”…”」这种明显错误。中文转英文则没有这个问题:两种中文引号统一变成同一个双引号,因此这一步是不可逆的。
哪些符号不会被转换
三类符号会被刻意放过:数字之间的小数点(3.14)、千分位逗号(1,000),以及字母数字之外的其它字符。…… 会被换成 ...,—— 会被换成 --。全角字母数字(123、ABC)不属于标点范畴,请用「全角半角转换」工具处理。
口径:中文标点→英文标点的映射覆盖 ,。、;:!?“”‘’()【】《》~ 与 ……(→...)、——(→--);英文→中文方向做反向映射,引号按出现顺序开闭配对,并放过小数点(两侧均为数字)与千分位逗号(逗号后紧跟数字)。全角字母数字不在处理范围(属宽度转换)。
代码示例
Python translate 映射表一次替换
TABLE = str.maketrans({
",": ",", "。": ".", "!": "!", "?": "?",
";": ";", ":": ":", "(": "(", ")": ")"
})
"你好,世界!".translate(TABLE) # "你好,世界!"
# 反向把映射表键值对调即可;数字保护需先正则排除 3.14 这类
JavaScript 映射对象 + 正则保护数字
const MAP = { ",": ",", "。": ".", "!": "!", "?": "?", ";": ";", ":": ":" };
const toEn = (s) => s.replace(/[,。!?;:]/g, (ch) => MAP[ch])
// 保护小数与千分位:先把数字里的点逗号占位,转完再还原
.replace(/(\d)\.(\d)/g, "$1<DOT>$2");
// 实际实现顺序:先占位、再替换、后还原,避免 3.14 被改成 3。14
常见问题
为什么小数点没有被转换成句号?
这是刻意的保护:如果无脑替换,「3.14」「v1.2」「example.com」都会被破坏成 3。14、v1。2。本工具只在句点两侧不同时为数字时才转,千分位逗号(逗号紧跟数字)同样放过,因此专业术语与数值都能安全通过。
中文引号转成英文后能转回来吗?
不能完全还原。「“”」与「‘’」在英文里都是同一个字符,转换成 " 与 ' 之后,原本哪一个是前引号的信息就丢失了。反方向转换时会按出现顺序重新配对,遇到嵌套引号的句子(如「他说:“好的”」)配对结果可能与你预期不同,需人工核对。
英文撇号被当成前引号了怎么办?
这是配对规则的固有局限:' 在英文里既可能是撇号(don't、it's),也可能是单引号。本工具按出现顺序交替判定,遇到 don't 这类紧凑写法时建议先转义或手工修正。相对可行的做法是:先转其它标点,引号单独用编辑器的「智能引号」功能处理。
省略号和破折号会被怎么处理?
中文的 ……(两个 U+2026)会换成三个半角句点 ...,——(两个 U+2014 破折号)会换成两个半角连字符 --;反方向遇到 ... 与 -- 也会还原成 …… 与 ——。注意只识别成对写法,单个 … 或单个 — 不会被改动。
顿号、会变成什么?
会变成半角逗号。中文顿号用于并列词之间的停顿(苹果、香蕉、梨),英文里没有对应符号,惯例上就用逗号。转换后句子读起来仍然正确,但并列关系不再用符号区分,中文稿件里建议保留顿号。
换行、空格和数字会受影响吗?
换行与空格原样保留(本工具只处理标点字符),数字同理;受影响的只有标点本身。统计里的「转换处数」能帮你确认改动规模,若这个数字远大于预期,说明文本里混着大量全角标点需要处理。
中英混排时应该往哪个方向转?
看最终载体:整段内容会出现在英文环境(代码、英文 README、英文邮件)就转成英文标点;主体是中文、只是夹着几个英文单词或术语,则保持中文标点更符合排版惯例。混排句子里没必要两边都迁就——统一到一种风格反而更整洁。
这个转换会改变文本长度吗?
通常会略微缩短:半角标点占 1 个宽度单位、中文标点占 2 个,所以转成英文后排版会变紧。字符数(length)多数情况下不变,只有 …… 与 —— 这类成对写法会从两个字符缩成一个或不变,具体可看结果区的统计。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。