在XP上通过红外(串口操作)获得了手机地址簿中的数据,但是无法解读其中的人名,英文没问题.不知道人名的编码方式,请问各位其中人名编码的方式,最好有解读编码的函数或源码.所读到的数据如下:
+CPBR: 1,"13621772803",129,"王磊"
+CPBR: 2,"13501753587",129,"€–HRQ"
+CPBR: 3,"13671750120",129,"木匠æ¯?
+CPBR: 10,"13501703580",129,"€NŽ^?
+CPBR: 11,"13501859766",129,"€m*”Ÿ"

解决方案 »

  1.   

    以前我做过手机的地址簿,用C语言,记得当时中文人名使用的是unicode,例如
    \x80...\x0\x0。也许对你有帮助
      

  2.   

    读出的在Memory中看到中文的内码是类似"E6 9C B1 E7 ..."这样的字串,好像并不是Unicode.
      

  3.   

    用下面两个函数转换一下就可以了,主要还是Unicode的问题
    MulitByteToWideChar
    WideCharToMulitByte
    具体参阅MSDN
      

  4.   

    两个中文字当然占6个字节,一个汉字占2个字节,加上一个unicode的头 \x80和一个结束符\x0\x0
      

  5.   

    我读出的内容是:
    +CPBR: 1,"13621772803",129,"XXXXXX" 
    其中XXXXXX代表中文乱码.除了XXXXXX之外均是标准字符,XXXXXX这些乱码的内码是:E7 8E 8B E7 A3 8A, 没有看到unicode头或结束符.还是另有别的原因?
      

  6.   

    学习 and 关注 and up
      

  7.   

    解决了,的确是Unicode,不过需要用AT命令设置字符集,才可以得到正确的Unicode码!
    多谢各位了,一定要给分