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

Sim*_*mon 10 javascript ascii utf-8 iconv

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

例:

ü变成你
成为o

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

小智 14

我找到的最简单的方法:

var str = "üó";
var combining = /[\u0300-\u036F]/g; 

console.log(str.normalize('NFKD').replace(combining, ''));
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize


ale*_*nst 9

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

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

  • 这里有更多http://unicode.org/repos/cldr/trunk/common/transforms/Latin-ASCII.xml (3认同)
  • @Jaruba你去,伙伴:) https://github.com/backbone-paginator/backbone.paginator/blob/a579796a30e583c4dfa09e0a86e4abd21e0b5b56/plugins/diacritic.js (2认同)