无需登录 数据私有 本地保存

去除变音符号 - 字母规范化ASCII

16
1
0
0

去除变音符号 - 字母规范化ASCII

将带有变音符号的字母(如 é, ñ, ü, ç, ø 等)转换为基础ASCII字符,支持法语、德语、西班牙语、葡萄牙语、北欧语言等。

快速示例:
字符数: 0
检测到变音符号: 0
字符数: 0

常见问题与知识点

变音符号是附加在字母上的符号,用于改变字母的发音或区分不同的语义。常见的变音符号包括:重音符号(acute accent,如 é)、抑音符号(grave accent,如 è)、扬抑符(circumflex,如 ê)、波浪号(tilde,如 ñ)、分音符号(umlaut/diaeresis,如 ü)、下钩符号(cedilla,如 ç)、上圆圈(ring,如 å)、斜线(stroke,如 ø)等。这些符号广泛存在于法语、德语、西班牙语、葡萄牙语、北欧语言等欧洲语言中。

去除变音符号(ASCII规范化)在以下场景中非常有用:
URL/域名处理:将带有变音符号的词语转换为ASCII安全字符,用于生成干净的URL slug(如 "café" → "cafe");
数据库存储:某些旧系统或数据库仅支持ASCII字符集,需要进行规范化;
搜索优化:规范化后的文本可以提高搜索引擎的匹配率,用户无论输入带不带变音符号都能搜到结果;
文件名处理:在不同操作系统间传输文件时,去除特殊字符可避免兼容性问题;
编程与数据处理:统一文本格式,便于程序化处理和比较。

本工具支持几乎所有使用拉丁字母的语言变音符号,包括但不限于:法语(é, è, ê, ë, ç 等)、德语(ä, ö, ü, ß)、西班牙语(á, é, í, ó, ú, ñ, ü)、葡萄牙语(ã, õ, ç, á, é, í, ó, ú)、意大利语(à, è, é, ì, ò, ù)、北欧语言(å, ä, ö, ø, æ)、波兰语(ą, ć, ę, ł, ń, ó, ś, ź, ż)、捷克语(č, ď, ě, ň, ř, š, ť, ů, ž)、土耳其语(ç, ğ, ı, ö, ş, ü)、越南语(多种声调符号)等。特殊的连字字符如 ß (eszett), æ (ash), œ (ethel), ð (eth), þ (thorn) 也会被正确转换。

是的,在某些语言中去除变音符号可能会改变单词的含义。例如:
西班牙语中 "año"(年)和 "ano"(肛门)含义完全不同;
德语中 "schon"(已经)和 "schön"(美丽)是不同的词;
法语中 "ou"(或者)和 "où"(哪里)也有区别。

因此,本工具主要用于技术处理和兼容性场景(如URL生成、文件名清理、数据库索引等),而非替代正确的语言文字使用。在正式的语言交流中,建议保留变音符号以确保语义准确。

核心技术使用JavaScript的 String.prototype.normalize() 方法:
① 使用 NFD(Normalization Form Decomposition) 将带变音符号的字符分解为"基础字母 + 组合变音符号"的形式(如 "é" → "e" + "◌́");
② 使用正则表达式 /[\u0300-\u036f]/g 移除 Unicode 组合变音符号(U+0300 到 U+036F 范围);
③ 对于无法通过NFD分解的特殊字符(如 ß, æ, œ, ø, ð, þ, ł 等),使用预定义的映射表进行替换(如 "ß" → "ss", "æ" → "ae", "ø" → "o" 等)。

这种方法的优势是高效、准确,能处理几乎所有Unicode中的拉丁字母变音符号组合。

ASCII规范化广泛应用于:
SEO优化:生成搜索引擎友好的URL slug;
邮件系统:确保邮件地址在不同系统中的兼容性;
旧系统集成:与仅支持ASCII的遗留系统交互;
跨平台文件名:避免在不同操作系统间出现乱码;
数据清洗:在数据分析前统一文本格式;
密码学与哈希:确保输入的一致性;
编程中的字符串比较:标准化后再进行比较操作。

以下是非NFD可分解的特殊字符映射表(常规变音符号如 á→a, é→e, ñ→n 等通过NFD自动处理):

原始字符Unicode转换结果说明
ßU+00DFss德语 eszett 小写
U+1E9ESS德语 eszett 大写
æU+00E6ae拉丁 ash 连字
ÆU+00C6AE拉丁 ash 连字大写
œU+0153oe拉丁 ethel 连字
ŒU+0152OE拉丁 ethel 连字大写
øU+00F8o北欧 o with stroke
ØU+00D8O北欧 O with stroke
ðU+00F0d冰岛语 eth
ÐU+00D0D冰岛语 Eth 大写
þU+00FEth冰岛语 thorn
ÞU+00DETH冰岛语 Thorn 大写
łU+0142l波兰语 l with stroke
ŁU+0141L波兰语 L with stroke
đU+0111d克罗地亚语 d with stroke
ĐU+0110D克罗地亚语 D with stroke
ıU+0131i土耳其语 dotless i
ijU+0133ij荷兰语 ij 连字
IJU+0132IJ荷兰语 IJ 连字大写
ħU+0127h马耳他语 h with stroke
ĦU+0126H马耳他语 H with stroke
ŧU+0167t萨米语 t with stroke
ŦU+0166T萨米语 T with stroke

* 常规变音符号(如 á, é, í, ó, ú, à, è, ì, ò, ù, â, ê, î, ô, û, ä, ë, ï, ö, ü, ÿ, ã, õ, ñ, ç, ş, ţ, å, ǎ, ě, ǐ, ǒ, ǔ 等)通过 Unicode NFD 分解自动处理,无需额外映射。