高分请教有关手机电话薄读取的问题(200分)

  • 主题发起人 主题发起人 tiany
  • 开始时间 开始时间
T

tiany

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在写使用串口控制手机收发短信的程序,收发短信功能已基本实现,但手机的电话簿
读出后不知如何解码,发送AT+CPBR指令后得到如下信息:
AT+CPBR=1,5

+CPBR: 1,"8613705155082",145,"??????????
+CPBR: 2,"8613605175980",145,"?????????????
+CPBR: 3,"8613802735242",145,"?????????????
+CPBR: 4,"8613910785437",145,"????????????????
+CPBR: 5,"8613801319717",145,"?????????????

OK
请高手指点,最好是有代码示例了。
 
后边的?号是什么 在超级终端里试过吗
 
TO:PLWang
无法正常显示所以才显示为?,这就是终端返回的原始数据。
 
也许是一些8个二进位代码,传输过来按7个二进位代码集处理时不能识别。
在使用英文os系统处理含汉字代码的文件时也会发生类似现象。
 
后面的应该是中文,可能是因为编码的原因
不要用终端,用程序直接读到16进制数组中试试
 
现在问题是如何把UTF-8格式的字符转换并显示出来。
把手机的字符集设为UTF-8后返回的信息如下
AT+CSCS="UTF-8"

OK
AT+CPBR=1,5

+CPBR: 1,"8613705155082",145,"姣涘缓,"
+CPBR: 2,"8613605175980",145,"鑲栨椽鏂?"
+CPBR: 3,"8613802735242",145,"绋嬩紵鍋?"
+CPBR: 4,"8613910785437",145,"甯冨皵鍙ゅ痉,"
+CPBR: 5,"8613801319717",145,"澶忓?鍏?"

OK

请高手指教!
 
不太清楚,不过没什么难的
你应该知道这些字代表的中文吧?把UTF-8返回的信息在自己程序中设置为16进制,与真实的
中文的16进制进行比较,应该可以得出来
或者你在网上搜索一下UTF-8,也许能找到有用的信息
 
我已经在VS.NET的帮助里找到答案,使用MultiByteToWideChar API。
 
姓名使用了编码,有HEX、UCS等方式,编码方法也不同
发短信等手机通讯有三种方式:
1.移动、联通网关,一般是通过宽带网连接
2.通过在163、sohu、sina等网站注册手机,编写程序来发送短信
3.红外或串口与手机通信,分Text和PDU两种传送模式。其中,Nokia手机还可以分为需要数据套件、免数据套件(二进制)两种方式。
我的主页上有后两种Demo程序及源代码。http://wenjinshan.wx-e.com/index2.htm
 
我有,放个邮箱
 
版主,MAPINFO7
请你告诉我,PHONE的解码是怎么样的???
我的邮箱:tzglh@163.net
QQ:22850424
 
后面的乱码可能是unicode字符
(如果你是支持中文电话簿的话)
 
后退
顶部