转换非ASCII字符(变音,口音......)为与其最接近的ASCII当量(塞创作)(Convert

2019-06-26 18:12发布

我在寻找办法JavaScript来转换非ASCII字符串中的字符为与其最接近的等价物,类似于什么PHP iconv功能一样。 例如,如果输入字符串被Rånades på Skyttis i Ö-vik ,它应该被转换成Ranades pa skyttis i o-vik 。 我看了一下phpjsiconv不包括在内。

它是可能的,如果因此如何,执行在JavaScript中这种转换?

Answer 1:

我发现最简单的方法:

var str = "Rånades på Skyttis i Ö-vik";
var combining = /[\u0300-\u036F]/g; 

console.log(str.normalize('NFKD').replace(combining, ''));

更多信息参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize



Answer 2:

这是因为iconv是背后最国际化字符映射转换功能的机编译UNIX工具。

你不会找到它javascript ,除非你访问某些浏览器组件。

编码是文档的属性,因此大多数JavaScript实现只是简单地忽视它。

你所需要的重音串纯JS库。 这将是最好有一个你所需要的特定语言。

该simpliest方式是通过一些转换表,甚至正则表达式的内容替换。

喜欢这里: http://lehelk.com/2011/05/06/script-to-remove-diacritics/

检查这个线程太: 在Javascript中更换变音符号



文章来源: Convert non-ASCII characters (umlauts, accents…) to their closest ASCII equivalent (slug creation)