javascript - 如何将unicode字符串转换为ascii [重复]

Posted

技术标签:

【中文标题】javascript - 如何将unicode字符串转换为ascii [重复]【英文标题】:javascript - how to convert unicode string to ascii [duplicate] 【发布时间】:2011-01-02 22:28:40 【问题描述】:

如何将 unicode 字符串转换为 ascii 为友好的 url 创建一个漂亮的字符串?

【问题讨论】:

***.com/questions/626792/…***.com/questions/286921/… 和谷歌的“音译” 替换重音字符不能回答这个问题。 ㏒(对数)、‰(每千分之一)、€(欧元)、␀/␆(nul/ack)、♻(循环)、∴(因此)等字符不受任何重音字母变得无重音的影响,但仍然不好友好的 url 字符,直到它们被 url-safe ascii 替换。这个问题比那个问题要广泛得多。 【参考方案1】:

只有short list of characters 可以在 URL 的路径组件中安全地传递。

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"

必须删除所有其他字符(如果您正在创建“slug”)或转义。

可以使用正则表达式/[^a-zA-Z0-9-._~]/ 进行删除。

可以使用encodeURIComponent()进行转义。

如果您希望实现相当于 ICONV 的音译(即将 é 转换为 e 转换为 EUR),您必须自己做,尽管您可以 leverage existing solutions并可能将transliteration table 转换为 JS 格式。

【讨论】:

为我工作!与其他方法相比也很容易。

以上是关于javascript - 如何将unicode字符串转换为ascii [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 Unicode 字符插入 JavaScript

如何获取 Javascript 中字符的 Unicode 代码点?

如何检查 Javascript 中 Unicode 字符串的相等性?

如何使用转义的 unicode 解码字符串?

JavaScript浅析javaScript和HTML与unicode字符集的关系

Javascript RegExp + 单词边界 + unicode 字符