javascript - 检查字符串是否为 UTF-8 如果是则返回\u+hex 如果不​​是则返回 false

标签 javascript utf-8 character-encoding hex typechecking

对于XSS safety ,我想将所有字符转换为\u+hex 编码。我见过UTF-16 solutions ,但我找不到 UTF-8 的任何内容。

我首先要确保所有字符都是UTF-8。在这里,我看到了很多解决方案,但没有一个与 JavaScript 一致。

如何测试字符串是否为 UTF-8,如果是则返回\u+hex 编码,否则返回 false?

最佳答案

function string_to_hex(input) {
    var temp = 0, output = "";
    for (var i = 0; i < input.length; i++) {
        temp = input.charCodeAt(i);
        if (temp > 0xFF) {
//      if (temp == 192 || temp == 193 || temp > 244) {
            return false;
        }
        output += "\\x" + temp.toString(16).slice(1); //lazy padding
    }
    return output;
}

如果您不检查非法代码点,则不需要注释掉该行。

关于javascript - 检查字符串是否为 UTF-8 如果是则返回\u+hex 如果不​​是则返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274888/

相关文章:

html - Outlook 显示矩形而不是 li 元素符号列表

c++ - 如何防止非 Unicode 应用程序在将资源加载到不同本地化的机器上时转换资源的字符集?

php - 为什么我使用 charset=utf8 得到 10 英镑

javascript - 谁能解释为什么这个 JavaScript 时间函数将特定的一天解释为 25 小时?

javascript - 基金会在 3 秒后关闭警报

javascript - 使用 XMLHttpRequest 获取非 utf8 数据

php - UTF-8 编码的 html 页面显示 �(问号)而不是字符

javascript - div 之间自动切换。设置超时不起作用

javascript - 数据传输在 IE11 中无法正常工作

mysql - AWS MariaDB 语句无法执行