【发布时间】:2012-08-02 16:36:51
【问题描述】:
我正在寻找在JavaScript 中将字符串中的非ASCII 字符转换为最接近的等价物的方法,类似于PHP iconv 函数的作用。例如,如果输入字符串为Rånades på Skyttis i Ö-vik,则应将其转换为Ranades pa skyttis i o-vik。我查看了phpjs,但不包括iconv。
是否可以在 JavaScript 中进行这种转换,如果可以,如何实现?
【问题讨论】:
-
相关(但不是真正的一揽子解决方案):remove umlauts or specialchars in javascript string
-
如果不维护巨大的替换表,这可能在 JavaScript 中是不可能的(至少,我从未见过这样做的方法)。没有办法将数据发送到服务器并在那里使用 iconv?
-
我曾经创建了一个函数来做这个。参见userscripts.org/scripts/review/112070,Ctrl+F "
var RW759_normalize_accents"。它用于对搜索字符进行规范化,我使用为特定目的制作的工具手动选择了字符 iirc。基于this Q&A -
@Pekka:你不认为通过编辑标题,你缩小了问题的范围吗?我最初写了
non-ASCII characters,你用characters with umlauts/accents代替了它。对我来说,除了umlauts和accents之外,还有很多其他字符也应该被转换:en.wikipedia.org/wiki/Diacritic。也许将标题改写为Convert non-ASCII characters (umlauts,accents...) to their closest ASCII equivalent (slug creation)会是一个不错的折衷方案? -
@user 我的(非专家)假设是所有变音符号都被“重音”覆盖。当然,继续吧,这听起来是个不错的妥协
标签: javascript character-encoding ascii converter slug