1 Star 0 Fork 2

无心/pomelo-cocos2dx-js

forked from codin/pomelo-cocos2dx-js 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Protocol.js 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
codin 提交于 2014-04-09 16:47 . update after test
var Protocol = {};
Protocol.strencode = function(str) {
var byteArray = new Uint8Array(str.length * 3);
var offset = 0;
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
var codes = null;
if (charCode <= 0x7f) {
codes = [charCode];
} else if (charCode <= 0x7ff) {
codes = [0xc0 | (charCode >> 6), 0x80 | (charCode & 0x3f)];
} else {
codes = [0xe0 | (charCode >> 12), 0x80 | ((charCode & 0xfc0) >> 6), 0x80 | (charCode & 0x3f)];
}
for (var j = 0; j < codes.length; j++) {
byteArray[offset] = codes[j];
++offset;
}
}
var _buffer = new Uint8Array(offset);
copyArray(_buffer, 0, byteArray, 0, offset);
return _buffer;
};
Protocol.strdecode = function(buffer) {
var bytes = new Uint8Array(buffer);
var array = [];
var offset = 0;
var charCode = 0;
var end = bytes.length;
while (offset < end) {
if (bytes[offset] < 128) {
charCode = bytes[offset];
offset += 1;
} else if (bytes[offset] < 224) {
charCode = ((bytes[offset] & 0x3f) << 6) + (bytes[offset + 1] & 0x3f);
offset += 2;
} else {
charCode = ((bytes[offset] & 0x0f) << 12) + ((bytes[offset + 1] & 0x3f) << 6) + (bytes[offset + 2] & 0x3f);
offset += 3;
}
array.push(charCode);
}
return String.fromCharCode.apply(null, array);
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/fawuxin/pomelo-cocos2dx-js.git
git@gitee.com:fawuxin/pomelo-cocos2dx-js.git
fawuxin
pomelo-cocos2dx-js
pomelo-cocos2dx-js
master

搜索帮助