繁体   English   中英

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

[英]Convert Javascript UTF-8 to ASCII (like Iconv('UTF-8', 'ASCII//TRANSLIT', $string) in PHP)

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

例子:

ü 变成了 u
ó 变成 o

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

我发现的最简单的方法:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM