文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程ASPSMS中用Unicode编码发送中文
精品推荐
特别推荐
·如何解密加密的ASP源代码
·PHP+MySQL 购物车程序实例
·ASP网站漏洞及入侵防范方法
·ASP网络安全
·1小时ASP入门
·初学ASP动态网页制作常用错误处理
·ASP实现网页打开任何类型文件都保存
·ASP技巧:使用FSO自动创建多级文件夹的函数
·轻松建站 主流ASP内容管理系统
·ASP教程:透彻掌握ASP分页技术
·ASP脚本语言的19个基本技巧使用
·推荐文章:ASP脚本程序的15种使用技巧
·问题解答:ASP编程中关于session的用法
·必学技巧:防范ASP木马的十大基本原则
·实例技巧:ASP方便实现网站的每日更新
·精华文章:ASP中SQL语句参考及记录集对象
·无组件上传图片到数据库中,最完整解决方案
·入门:简单熟悉掌握ASP的语法和变量
·ASP网站开发常备:日期和时间函数示例
·ASP教程
热点TOP10
·ASP网站漏洞及入侵防范方法
·ASP分页代码,已经写成类了,值得参考
·SMS中用Unicode编码发送中文
·ASP网站程序自动升级实现的方法
·使用FCKEditor的设置技巧(ASP篇)
·动态网页技术ASP编程中FileUp 4.0 的使用方法
·AspJpeg 水印组件参数详细说明
·解决下载文件名乱码问题的问题
·FCKeditor在ASP配置环境中的使用
·用ASP实现分页的源码
·aspjpeg组件高级使用方法介绍
·在Web界面下如何生成像资源管理器一样的树形目录(版本2.0)
·常用的 ASP ActiveX 组件
·无组件上传图片到数据库中,最完整解决方案
·初学:ASP内建对象Response
·用ASP对网页进行限制性的访问
·如何应用ASP操作数据库的类
·在ASP中使用类,实现模块化
·ASP基础教程之ASP AdRotator 组件的使用
·ASP教程:透彻掌握ASP分页技术

SMS中用Unicode编码发送中文

日期:2004年3月11日 作者:清风网络学院 查看:[大字体 中字体 小字体]


SMS是由Esti 所制定的一个规范(GSM 03.40 和 GSM 03.38)。有两种方式来发送和接收SMS消息:文本模式或者PDU(protocol description unit)模式。文本模式只能发送普通的ASCII字符,而要发送图片、铃声、其它编码的字符(如中文)就必须采用PDU模式。

       PDU模式中,可以采用三种编码方式来编码要发送的内容,分别是 7-bit编码、8-bit编码、16-bit编码。7-bit编码用于发送普通的ASCII字符;8-bit编码通常用于发送数据消息,比如图片和铃声等;而16-bit编码用于发送Unicode字符。在这三种编码方式下,可以发送的最大字符数分别是 160、 140、 70。

       若要发送中文(或日文等),必须采用PDU模式的Unicode编码方式。

我最近参与了一个在linux下收发短信的项目。其中,需要实现中文的发送和接收。由于原来没有中文编码、Unicode编码的经验,所以查了一些资料,也在一些论坛上提了一些问题。现在把它整理出来,希望对以后再做类似项目的朋友有个帮助。我写的比较简单,关于PDU的规范,可以看这里:http://www.ascend-tech.com.cn/sustain/SMS_PDU-mode.pdf ,或者去wavecom的网站上找找看。

 

1、 GB2312 编码到Unicode 编码的转换

 

在 Redhat 7.3系统上,默认是用GB2312编码保存中文字符的(对于中英文混合的文本也是如此)。所以首先需要把 GB2312 编码的字符串转换到 Unicode编码的字符串。GB2312编码是一种多字节编码方式,对于中文,用2个字节表示,对于英文,用1个字节表示,就是英文的ascii码。(注:我没有仔细看过GB2312编码的规范,以上理解是实际开发中得出来的,不能保证正确性)。Unicode编码是双字节编码方式,对所有字符,都采用2个字节编码。在linux平台上,GB2312编码到Unicode编码的转换,可以有三种实现方式(或者更多):

1)、用 mbstowcs () 函数。就是多字节编码到宽字符的转换。我试过它,可以正确的转换,但是这个函数可能不是很可靠。

 

2)、用 GB2312 à Unicode 的转换表,手动查表转换。网上有这样的转换表,你需要对每一个GB2312字符,根据它是中文字符还是英文字符,分别转换。

 

3)、用 iconv () 函数。这可能是linux上的标准的方法,不仅可以转换GB2312到Unicode,还可以在任意的两种编码之间转换(前提是linux系统要支持这些编码)。

首先要用 iconv_open(), 打开一个转换句柄,指定两种转换前的编码和转换后的编码。

然后用 icnov() 作转换。最后用 iconv_close()关闭句柄,释放资源。

#include <iconv.h>

 

#define BUFLEN 200

char inbuf[BUFLEN];

char outbuf[BUFLEN];

char* pin = inbuf;

char* pout = outbuf;

 

…打开文件,读入GB2312数据到inbuf,数据长度为 len

 

int inleft = len;

int outleft = BUFLEN;

 

iconv_t cd;

if((cd = iconv_open(“gb2312”, “unicode”)) == (iconv_t)-1)

        return –1;

if(iconv(cd, &pin, &inleft, &pout, &outleft) == (size_t)-1)

        return –1;

iconv_close(cd);

使用 iconv () 时,需要注意参数的使用,inleft 是输入缓冲区数据数据长度,outleft是输出缓冲区大小。(需要保证输出缓冲区足够大)。

转换以后,outleft 是outbuf中空闲空间的大小,所以 BUFLEN-outleft 才是真正的Unicode数据长度。

[1] [2] 下一页 




上一篇:RedHat linux 8.0下内核编译步骤和说明

下一篇:FLASHFXP的FXP使用

SMS中用Unicode编码发送中文 相关文章:
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·《鬼舞者3》中文功略(PS2) - 其他电视游戏攻略秘籍 - 其他电视游戏
·认识MPEG视频压缩标准及相关编码格式
·官方下载:Office 2003 SP3简体中文版
·GM使用命令以及物品怪物中文清单1
·什么叫中文域名
·CCNA认证英文词汇中文解析-最新最全版
·世界顶级图片管理加工软件Picasa免费中文版
·使用Skype免费发送手机短信的方法
·最新的VISTA下载地址 Vista中文旗舰版 bt 激活
SMS中用Unicode编码发送中文 相关软件:
·主题医院 2 完美中文硬盘版
·《家园2》 简体中文正式版
·三国群英传 2 中文版
·300多种中文字体
·梦幻蛋糕屋中文版
·仙剑奇侠传2中文版 完美破解补丁
·《猎杀潜航2中文版》(Silent Hunter II)中文版
·NDS《逆转裁判4 完美汉化简体中文版》模拟器
·三国志10威力加强PK版中文版 内存+存档+剧本修改器v1.10
·中文版Excel 2003实例与技巧

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot