windows phone中GBK编码支持
windows phone作为一个新生的智能机操作系统幼儿,虽然背负着微软、诺基亚等的期望与重担,但是初始期不可避免的有一些功能支持不足的问题,例如对不支持GBK编码。
我从android平台转到windows phone平台上开发,便遇到了这只拦路虎,在android平台上有简单易用的GBK编码支持,一般用String gbkStr = new String(byte[], "gbk")就可以解决。而在windows phone中只有对unicode规范的uft-8、utf-16的编码格式的支持,一种解决方法是所有模块使用较为通用的unicode编码,但是为了适应一些需要GBK编码支持的服务器端代码、引擎模块等,只能由客户端实现gbk编码支持,在windows phone中也即是gbk编码到utf-16编码的转换。
所有编码从二进制字节序列的理解都是一致的,所不同的是不同的编码方法规定了不同的每个字符的表示大小,通常是以几个字节表示一个字符或者汉字,GBK编码便是用两个字节表示一个汉字(字符),即固定字节编码方法;我们所需要做的是给出gbk的两个字节到utf-16的对应转换。简单的实现为gbk每个字符的两个字节的整数与unicode字位建立一个对应关系即可,在windows phone中为char类型。