|
本帖最后由 Johnson 于 2016-1-7 19:14 编辑
在做微信应用开发(Web开发)的时候,经常会用到WebSocket方式与设备进行实时通讯,对于如下的枚举类型定义:
Mode: 0.制冷, 1.抽湿, 2. 通风
在发送控制指令时,可能会写成这样:
{"cmd":"c2s_write","data":{"did":"itE6covvbAguLxmpua3ec5","attrs": {"Mode": "抽湿"}}}
但这样是不工作的!因为没有以Unicode编码字符串如(\u62bd)。
正确的写法是:
{"cmd":"c2s_write","data":{"did":"itE6covvbAguLxmpua3ec5","attrs": {"Mode": "\u62bd\u6e7f"}}}
对于Javascript可以使用以下两个函数进行Unicode编码和解码:
encode: function encodeUTF8(str){ var temp = "",rs = ""; for(var i=0, len = str.length; i < len; i++) { temp = str.charCodeAt(i).toString(16); rs += "\\u"+ new Array(5-temp.length).join("0") + temp; } return rs; } decode: function decodeUTF8(str){ return str.replace(/(\\u)(\w{4}|\w{2})/gi, function($0,$1,$2){ return String.fromCharCode(parseInt($2,16)); });}
|
|