我有以下代码:
var packet = "\xFF\xFF\xFF\xFF";
packet += "\x6D";
packet += "127.0.0.1:" + this.port;
packet += "\x00";
packet += this.name;
packet += "\x00";
packet += this.state;
packet += "\x00";
packet += "stateA";
packet += "\x00";
packet += "sender";
packet += "\x00";我有var id = 32;
我想得到这样的东西:
...
packet += "\x00";
packet += "sender";
packet += "\x00";
packet += "\x20;如何将id数字转换成十六进制格式并与packet连接
我已经看过谷歌了,但我还没有找到解决方案。
谢谢。
发布于 2013-05-17 22:34:15
您可以使用toString() function of the Number prototype来获取您的数字的十六进制表示:
var hex = (23).toString( 16 );
// or
var hex = id.toString( 16 );编辑
您似乎只想添加一个由id标识的unicode符号。为此,请使用String.fromCharCode()
packet += String.fromCharCode( id );发布于 2013-05-17 22:37:03
您可以使用String.fromCharCode函数:
packet += String.fromCharCode(32); // " "如果你想得到十六进制表示,你可以使用
var hex = (32).toString(16), // "20"
byte = JSON.parse('"\\u'+('000'+hex).slice(-4)+'"'); // " " == "\u0020"…但这很丑陋:-)
发布于 2013-05-17 22:40:36
您可以使用String.fromCharCode(23)来完成此操作。
例如(在浏览器控制台中):
> String.fromCharCode(23) == "\x17"
true有关更多常规信息,请参见How to create a string or char from an ASCII value in JavaScript?。
https://stackoverflow.com/questions/16611614
复制相似问题