piapia123
zh

汉字转拼音

文本

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把汉字转成拼音。三种声调写法(`nǐ hǎo` / `ni3 hao3` / `ni hao`)与首字母缩写(`nh`)都能出,标点、英文与数字默认留在原位,所以产物与原句能逐段对照,而不是一串看不出对应的字母。多音字是按词判定的 —— 「银行」的「行」是 háng、「行走」的「行」是 xíng,这一点决定了它必须查一张六万多条的词表,而不是套几条拼写规则。这也是这个工具唯一一个引入了外部依赖的地方:拼音不是一套规则,是一张数据表,任何「自己写」的实现都会在常用字上错得离谱。

功能

  • 三种声调写法:声调符号 nǐ hǎo、声调数字 ni3 hao3、不带声调 ni hao
  • 首字母缩写模式,输出连写的 nhsj(不是带空格的 n h s j)
  • 多音字按词判定:银行 háng、行走 xíng、长城 cháng、长大 zhǎng
  • 标点、英文单词与数字默认原样保留,产物能与原句逐段对照
  • 也可以一键去掉所有非中文字符,只留拼音
  • 中文标点前后的空格自动收掉(nǐ hǎo,shì jiè 而不是 nǐ hǎo , shì jiè)
  • 结果实时更新,可整块复制
  • 一次最多两万个字符,超长输入会明确拒绝而不是卡住页面
  • 全部在浏览器本地完成,文字不外传

使用方法

  1. 把汉字粘进输入框
  2. 选输出形式:完整拼音或首字母缩写
  3. 选声调写法
  4. 需要纯拼音时勾上「去掉非中文字符」

常见问题

多音字怎么处理?
按词判定,不是按字。「银行」输出 yín háng、「行走」输出 xíng zǒu —— 同一个「行」字两种读音,只看单字是判不出来的,必须知道它前后是什么字。工具用的是 `pinyin-pro` 的词表(六万多条),它按最长匹配切词再查读音。少数专有名词与古汉语用法仍然可能不准,那是这类工具的固有边界。
为什么这个工具要下载几百 KB?
因为拼音表本身就是这么大 —— 六万多个词条,压过之后约 142 KB(gzip)。这是本工具唯一一个外部依赖,也是权衡后的选择:自己写一套「按规则推拼音」的实现在常用字上就会错(多音字根本无规则可言),而拼音错了这个工具就没有价值。体积是按页面懒加载的:不用这个工具的人一个字节都不会下载,只有打开这一页才会取那份数据。
首字母缩写为什么是连着的?
因为「首字母缩写」在中文语境里指的就是连写的形式(`nhsj` 这种像缩写词的样子)。带空格的 `n h s j` 严格说也对,但那看起来像一串单独的字母而不是一个缩写。需要那种形式的话,用「完整拼音 + 不带声调」再把空格手动删掉即可。
标点为什么留在产物里?
因为留着才能与原句逐段对照。`nǐ hǎo,shì jiè` 一眼看得出逗号在哪里,全删掉就只剩一串拼音,回头对不上原句的断句。需要纯拼音的话,勾上「去掉非中文字符」即可。顺带一提:库本身会把标点当「非中文字符」处理,输出成 `nǐ hǎo , shì jiè`(标点孤零零地悬在空格中间),这里把中文标点前后的空格收掉了 —— 只有英文标点后面保留空格,因为 `Hello, world` 那个逗号后面本来就该有。
文字会被上传吗?
不会。转换全在浏览器内存里完成,页面不发送任何请求,断网也能用 —— 拼音表就在页面自己的 JS 里。

相关工具