javascript中的字符到十六进制

javascript中的字符到十六进制,javascript,char,hex,Javascript,Char,Hex,有谁能指导我如何在javascript中将字符转换为十六进制吗? 例如: "入力されたデータは範囲外です。" 到 “\u5165\u529B\u3055\u308C\u305F\u30C7\u30FC\u30BF\u306F\u7BC4\u56F2\u5916\u3067\u3059\u3002” 但是我想不出来 任何建议 谢谢,Sarbbottam您可以循环遍历字符,并使用charCodeAt函数获取它们的UTF-16值,然后用它们构造一个字符串 以下是我构建的一些代码,这些代码比您链接的站

有谁能指导我如何在javascript中将字符转换为十六进制吗?

例如:

"入力されたデータは範囲外です。"

“\u5165\u529B\u3055\u308C\u305F\u30C7\u30FC\u30BF\u306F\u7BC4\u56F2\u5916\u3067\u3059\u3002”

但是我想不出来

任何建议


谢谢,Sarbbottam

您可以循环遍历字符,并使用
charCodeAt
函数获取它们的UTF-16值,然后用它们构造一个字符串

以下是我构建的一些代码,这些代码比您链接的站点上的代码要好得多,应该更容易理解:

function string_as_unicode_escape(input) {
    function pad_four(input) {
        var l = input.length;
        if (l == 0) return '0000';
        if (l == 1) return '000' + input;
        if (l == 2) return '00' + input;
        if (l == 3) return '0' + input;
        return input;
    }
    var output = '';
    for (var i = 0, l = input.length; i < l; i++)
        output += '\\u' + pad_four(input.charCodeAt(i).toString(16));
    return output;
}
函数字符串作为unicode转义(输入){
功能板四(输入){
var l=输入长度;
如果(l==0)返回“0000”;
如果(l==1),则返回'000'+输入;
如果(l==2)返回'00'+输入;
如果(l==3)返回'0'+输入;
返回输入;
}
var输出=“”;
对于(变量i=0,l=input.length;i
让我们把它分解一下

  • string\u as\u unicode\u escape
    接受一个参数
    input
    ,它是一个字符串
  • pad_four
    是一个内部函数,它只做一件事;它用前导的
    '0'
    字符填充字符串,直到长度至少为四个字符
  • 首先将
    输出定义为空字符串
  • 对于字符串中的每个字符,将
    \u
    附加到
    输出
    字符串中。使用
    input.charCodeAt(i)
    获取字符的UTF-16值,然后使用
    将其转换为十六进制字符串。toString(16)
    ,然后用前导零填充,然后将结果附加到
    输出
    字符串中
  • 返回
    输出
    字符串
  • 正如Tim Down所评论的,我们还可以将
    0x10000
    添加到
    charCodeAt
    值,然后
    .slice(1)
    调用
    .toString(16)
    ,以实现填充效果。

    var hex=new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f')

    函数stringEncode()
    {
    var x=document.getElementById(“from_text”);
    var preescape=“”+x.value;
    var=”;
    var i=0;
    
    对于(i=0;i您只需使用普通的
    replace()
    即可


    ”!\u0100力 非常感谢。-Sarbbottamy您可以使用以下技巧丢失填充代码:
    output+='\\u'+(input.charCodeAt(i)+0x10000).toString(16.slice(1);
    这确实非常聪明;)
        function stringEncode()
        {
            var x=document.getElementById("from_text");
    
    
            var preescape="" + x.value;
            var escaped="";
    
            var i=0;
            for(i=0;i<preescape.length;i++)
            {
                escaped=escaped+encodeChar(preescape.charAt(i));
            }
    
            //x=document.getElementById("to_text");
    
                        x.value=escaped;
            //alert("Codigo: "+escapeHtml(escaped));
            //document.getElementById('string_example').innerHTML="<b>String example with text</b><br/><br/>String s=\""+escapeHtml(escaped)+"\";<br/><br/>";
        }
    
    
        function escapeHtml(unsafe) {
           return unsafe
                    .replace(/&/g, "&amp;")
                    .replace(/</g, "&lt;")
                    .replace(/>/g, "&gt;")
                    .replace(/"/g, "&quot;")
                    .replace(/'/g, "&#039;");
                }
    
                function encodeChar(original)
                {
                        var found=true;
                        var thecharchar=original.charAt(0);
                        var thechar=original.charCodeAt(0);
                        switch(thecharchar) {
                                        case '\n': return "\\n"; break; //newline
                                        case '\r': return "\\r"; break; //Carriage return
                                        case '\'': return "\\'"; break;
                                        case '"': return "\\\""; break;
                                        case '\\': return "\\\\"; break;
                                        case '\t': return "\\t"; break;
                                        case '\b': return "\\b"; break;
                                        case '\f': return "\\f"; break;
    
                                        default:
                                                found=false;
                                                break;
                                }
                                if(!found)
                                {
                                        if(thechar>127) {
                                                var c=thechar;
                                                var a4=c%16;
                                                c=Math.floor(c/16); 
                                                var a3=c%16;
                                                c=Math.floor(c/16);
                                                var a2=c%16;
                                                c=Math.floor(c/16);
                                                var a1=c%16;
                                        //  alert(a1);
                                                return "\\u"+hex[a1]+hex[a2]+hex[a3]+hex[a4]+"";        
                                        }
                                        else
                                        {
                                                return original;
                                        }
                                }
    
    
                }
    
    function string_as_unicode_escape(str){
        return str.split("").map(function(s){
            return "\\u"+("0000" + s.charCodeAt(0).toString(16)).slice(-4);
        }).join("");
    }