提交 e08c027d authored 作者: Giovanni Maruzzelli's avatar Giovanni Maruzzelli

gsmopen: added an excerpt from gsmlib FAQ on how to sending UCS2 when characters…

gsmopen: added an excerpt from gsmlib FAQ on how to sending UCS2 when characters cannot be represented in GSM-7 (gsmlib does not support utf to UCS2)
上级 4ed53eca
......@@ -2706,7 +2706,8 @@ int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text)
SMSMessageRef smsMessage;
memset(mesg_test, '\0', sizeof(mesg_test));
sprintf(mesg_test,":) ciao belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大aèéàòçù"); //let's test the beauty of utf8
//sprintf(mesg_test,":) ciao belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大aèéàòçù"); //let's test the beauty of utf8
sprintf(mesg_test,":) ciao belè èéàòìù");
//text=mesg_test;
utf8_to_iso_8859_1(tech_pvt, text, strlen(text), smscommand, sizeof(smscommand));
......@@ -2718,6 +2719,31 @@ int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text)
sprintf(smscommand, "AT+CMGS=%d", pdulenght);
#ifdef NOTDEF
*** 9. How to support unicode?
You need 6 steps:
1. set datacodingschema to DCS_SIXTEEN_BIT_ALPHABET
2. set your locale correctly, for example, my locale, china.
setlocale(LC_ALL, "chs");
3. translate MBCS(multiple byte character set) string to unicode string.
wchar_t wstr[ 1000 ];
memset(wstr, 0, 2000);
mbstowcs(wstr, data.c_str(), data.length());
4. get unicode string length.
int wcs_len = wcslen(wstr);
5. change unicode string to net order.
for (int i = 0; i < wcs_len; i++)
wstr[ i ] = htons(wstr[ i ]);
6. put unicode string into pdu.
char content2[1000];
SMSMessageRef sms;
//MessageType messagetype;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论