如何解决将Unicode转换为UTF8
| 我正在尝试在javascript中混搭两个不同的第三方服务,并且正在使用某个字符集获取字符串,因此我需要将其转换为Javascript中的另一个字符集。 例如,字符串为tést。 我得到了这样的编码字符串:te%u0301st。该重音编码为%u0301。我需要将其转换为以下字符串:t%C3%A9st,其中é编码为%C3%A9。如何在javascript中将e%u0301转换为%C3%A9? 谢谢解决方法
您似乎正在尝试以Unicode正常形式C规范化您的输入。我不知道有任何简单的方法可以在Javascript中执行此操作。您可能需要自己实施归一化算法,或者找到一个实现该算法的库。
编辑以删除错误问题的答案
,如果您只需要使用转义的URL Unicode编码,就可以解决问题:
function convert(s) {
function parse(a,c) {
return String.fromCharCode(parseInt(c,16));
}
return encodeURIComponent(s.replace(/%u([0-f]{4})/gi,parse));
}
convert(\'te%u0301st\'); // => te%CC%81st
如果您特别需要Normal Form C,则需要自己实现大量Unicode智能,因为javascript中的\'te\\u0301st\'.length
(或\'tést\'.length
)为5。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。