将重音文本转换为ASCII字符?

我想将带重音的字母和各种编码转换成Javascript中简单的英文ASCII文本,并想知道可能的选项。 我需要的是:

éclair ~becomes~ eclair bär ~becomes~ bar привет ~becomes~ privet こんにちは ~becomes~ konnichiva 

正如你所看到的想法是,任何语言都被转换成简单的英文ASCII等价物。 ççéétèd字母被转换成普通等价物,西里尔字母或日文编码的字母被转换成音译等价物。

任何人都知道在Javascript中做到这一点的方法?

有许多Node模块可以做类似的事情,但是比Node-iconv轻得多,特别是在所有JS中,不需要编译任何C或C ++:

  1. 节点unidecode似乎主要是你所要求的:

     $ npm install unidecode ... unidecode@0.1.3 node_modules/unidecode $ node > var unidecode = require('unidecode'); undefined > unidecode('éclair') 'eclair' > unidecode('bär') 'bar' > unidecode('привет') 'priviet' > unidecode('こんにちは') 'konnitiha' 
  2. node-transliterator甚至更轻,但performance得更进一步:

     $ npm install transliterator ... transliterator@0.1.0 node_modules/transliterator $ node > var transliterator = require('transliterator'); undefined > transliterator('éclair') 'eclair' > transliterator('bär') 'baer' > transliterator('привет') '' > transliterator('こんにちは') '' 
  3. node-urlify稍微接近一些,但也离你所要求的更远:

     $ npm install urlify ... urlify@0.3.5 node_modules/urlify $ node > var urlify = require('urlify').create({ spaces: ' ' }); undefined > urlify('éclair') 'eclair' > urlify('bär') 'bar' > urlify('привет') 'privet' > urlify('こんにちは') '_____' 
  4. 最后, limax更重量级,当我做npm install limax它会打印大量的C编译器警告,但是它仍然工作,并且是最接近你所要求的:

     $ npm install limax ... limax@0.0.2 node_modules/limax ├── speakingurl@0.9.1 ├── pinyin2@2.0.8 ├── hepburn@0.5.2 (bulk-replace@0.0.1) └── cld@0.0.6 $ node > var slug = require('limax') undefined > slug('éclair') 'eclair' > slug('bär') 'baer' > slug('привет') 'privet' > slug('こんにちは') 'konnichiha' 

结帐node-iconv 。

看起来像php iconv的节点相当于。

作者在这里。 您可以尝试音译模块。 它可以在浏览器和node.js中运行,并且没有依赖关系

    Interesting Posts