我想知道如何使用Javascript将UTF-8中的字符“转换”为最接近的ASCII等价物,就像PHP中的Iconv doest一样。
示例:
ü成为你成为o
我宁愿不使用替换,因为a)它需要一组完整的字符,这是很多工作而且b)我很难得到一整套字符,而且我会如果我错过了一两个,我再也不确定了。
答案 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所说,你唯一的选择是根据字典映射/替换字符。
答案 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 "