应用场景:转换ascii字元 与蓝牙端 通讯。
比如十进位 1 我想转换为 ascii的 字符笑脸
javascript的 String.fromCharCode();//只能转换Unicode 想问问大家有没有办法。
function _base64ToArrayBuffer(base64) {
var binary_string = base64;
var len = binary_string.length;
var bytes = new Uint8Array( len );
for (var i = 0; i < len; i++){
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}
function _arrayBufferToBase64( buffer ) {
var binary = '';
var bytes = new Uint8Array( buffer );
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode( bytes[ i ] );
}
return binary;
}
var string = "ËaÃ=\¸AHáA"; //这个是通过蓝牙接收过来base64 解码的字符串。
var binary = _base64ToArrayBuffer(string);
var dv = new DataView(binary,0);
Protocol_id = dv.getUint8(0);
var len = dv.getUint8(1);
var x = dv.getFloat32(2,true); // 倾斜角度
var t = dv.getFloat32(6,true); // 温度
var r = dv.getFloat32(10,true); // 地磁航向角
console.log("长度-"+len+"x-"+x+"t-"+t+"r-"+r);
function UnicodeToAscii(content) {
var code = content.match(/&#(\d+);/g);
result= '';
for (var i=0; i<code.length; i++)
result += String.fromCharCode(code[i].replace(/[&#;]/g, ''));
return result;