use*_*818 18 javascript hex char
任何人都可以指导我如何在javascript中将char转换为十六进制?
例如:
"入力されたデータは范囲外です."
到
"\ u5165\u529B\u3055\u305F\u30C7\u30FC\u30BF\u306F\u7BC4\u56F2\u5916\u3067\u3059\u3002"
但是我无法弄明白.
任何建议.
谢谢,Sarbbottam
Del*_*ani 28
您可以循环遍历字符并使用该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;
}
Run Code Online (Sandbox Code Playgroud)
让我们分解吧.
string_as_unicode_escape接受一个参数,input这是一个字符串.pad_four是一个内部功能,做一件事; 它使用前导'0'字符填充字符串,直到长度至少为四个字符.output为空字符串.\u到output字符串.取字符的UTF-16值input.charCodeAt(i),然后将其转换为十六进制字符串.toString(16),然后用前导零填充它,然后将结果附加到output字符串.output字符串.作为添下的评论中,我们还可以添加0x10000到charCodeAt值,然后.slice(1)从调用产生的字符串.toString(16),来达到填充的效果.
function string_as_unicode_escape(str){
return str.split("").map(function(s){
return "\\u"+("0000" + s.charCodeAt(0).toString(16)).slice(-4);
}).join("");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18356 次 |
| 最近记录: |