4
我有一个变量,我们称之为myNum
,它包含一个32位值。我想把它变成一个4字节的字符串,其中字符串的每个字节对应于myNum
的一部分。将整数转换为字符串
我试图做类似如下(不工作):
var myNum = someFunctionReturningAnInteger();
var str = "";
str += String.charCodeFrom((myNum >>> 24) & 0xff);
str += String.charCodeFrom((myNum >>> 16) & 0xff);
str += String.charCodeFrom((myNum >>> 8) & 0xff);
str += String.charCodeFrom(myNum & 0xff);
例如,如果myNum
等于350则str
会是什么样0x00
,0x00
,0x01
,0x5e
当我用wireshark检查它时。
charCodeFrom()
只有当我想要每个单独的字节的值< = 0x7f。有没有独立于浏览器的方式来做我想做的事情?
谢谢
问题的精彩描述。但是,一旦字符串命中Javscript,它将是UTF16,所以还有另一层翻译问题。 –
谢谢!而且,是的,内部的“字节”将使用UTF16编码......但是,除了字符串将占用您预期的两倍的内存这一事实之外,我想不出任何会由此导致的问题特别是......有没有? –
只是注意到UTF8和UTF16编码是不同的,所以八位字节序列将会不同。我经常不使用UTF16,但我确信'x80'会被编码为'\ x00 \ x80'(UTF16)而不是'x \ c2 \ x80'(UTF8) –