将Javascript UTF-8转换为ASCII(如PHP中的Iconv('UTF-8','ASCII // TRANSLIT',$ string))

时间:2012-11-09 14:09:44

标签: javascript utf-8 ascii iconv

我想知道如何使用Javascript将UTF-8中的字符“转换”为最接近的ASCII等价物,就像PHP中的Iconv doest一样。

示例:

ü成为你成为o

我宁愿不使用替换,因为a)它需要一组完整的字符,这是很多工作而且b)我很难得到一整套字符,而且我会如果我错过了一两个,我再也不确定了。

3 个答案:

答案 0 :(得分:12)

我找到的最简单方法:

var str = "üó";
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

答案 1 :(得分:9)

正如@Pointy所说,你唯一的选择是根据字典映射/替换字符。

你会发现这非常有用:https://github.com/backbone-paginator/backbone.paginator/blob/a579796a30e583c4dfa09e0a86e4abd21e0b5b56/plugins/diacritic.js

答案 2 :(得分:0)

现在有一个iconv到JS的端口:https://www.npmjs.com/package/iconv

var iconv = new Iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE');
iconv.convert('ça va が'); // "ca va "