中国本土 本地计算 开箱即用 内置示例 不留痕迹

中英标点互转工具

把中文的「,。!?;:()」换成英文的「,.!?;:()」,或反向替换。英文转中文时会按开闭配对处理引号,并刻意放过小数点与千分位逗号——3.14 不会被改成 3。14。中英混排、从别人文档复制内容时最常见的一类格式问题,就是它。

从 PDF 复制的文字带着全角标点、中文稿件要贴进英文环境、代码注释里混着「,」导致编码报错——中英标点混排是文本处理最高频的格式问题。本工具双向互转:中文「,。!?;:()」与英文「,.!?;:()」一一对应,英文转中文时引号按开闭配对。

刻意的保护规则要知道:小数点与千分位逗号不会被转换——3.14 不会变成 3。14,1,000 不会变成 1,000;这是「智能放过」,宁可不转也不破坏数字。全角空格、书名号等无英文对应的符号保持原样;转换后看统计里的改动处数,确认没有误伤。

使用步骤

  1. 选方向:中文 → 英文(贴进代码/英文文档),或英文 → 中文(中文稿件)。
  2. 粘贴内容,结果即时更新,统计显示改动处数。
  3. 核对数字与引号:小数点、千分位被保护;引号按开闭配对。
  4. 复制结果;重要稿件建议通读一遍再使用。

计算原理与示例

基本用法

选方向、粘内容,结果即时更新,统计里会给出这次改动了多少处。方向怎么选看目标:要贴进英文环境(代码注释、英文文档、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)多数情况下不变,只有 …… 与 —— 这类成对写法会从两个字符缩成一个或不变,具体可看结果区的统计。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。