当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .Net UCS2 加码最简单的方法

ASP.NET
asp.net(c#)网页跳转七种方法小结
完美解决在ModalPopupExtender中使用CalendarExtender时被层遮挡的问题
ASP.NET、SharePoint中另存文件的长文件名被截断的原因及解决办法
查看Json输出的*最方便*的方法 (转)
asp.net 代码隐藏的编码模型
ajaxpro.dll 控件实现异步刷新页面
asp.net DbProviderFactory的使用-示例
一个简单的asp.net 单点登录实现
jQuery+Ajax用户登录功能的实现
asp.net 弹出对话框返回多个值
.NET 中英文混合验证码实现代码
一个完整的ASP.NET 2.0 URL重写方案[翻译]
asp.net关于onpropertychange和oninput事件实现代码
asp.net gridview指定某一列滚动
Equals和==的区别 公共变量和属性的区别小结
asp.net 合并GridView中某列相同信息的行(单元格)
ASP.NET(C#) 定时执行一段代码
asp.net 预防SQL注入攻击之我见
asp.net下将Excel转成XML档的实现代码
asp.net url分页类代码

ASP.NET 中的 .Net UCS2 加码最简单的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 43 ::
收藏到网摘: n/a

  .Net UCS2 加码最简单的方法。最近开发了一个短信 Gateway 应用方案,虽然是不用 PDU 那么麻烦,但毕竟要发中文短信的话得用加码的呀(BTW,最后都不需要用这个功能)。

  编程文档详细的指名要用 UCS2 加码,Ok,UTF8 和 16 大家都不陌生吧,但什么是 UCS2 呢?在这里粗略的解释一下,摘的。

  UCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。下面让我们做一些简单的数学游戏:

  UCS-2有2^16=65536个码位,UCS-4有2^31=2147483648个码位。

  UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为256行 (rows),每行包含256个cells。当然同一行的cells只是最后一个字节不同,其余都相同。

  group 0的plane 0被称作Basic Multilingual Plane,即BMP。或者说UCS-4中,高两个字节为0的码位被称作BMP。

  将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节,就得到了UCS-4的BMP。而目前的UCS-4规范中还没有任何字符被分配在BMP之外。

  经过了无数次的尝试,我用以下代码完成了这个加码的 function,测试通过,童叟无欺哦!

以下是引用片段:
  Private Function StrtoUCS2(ByVal Content As String) As String
  Dim i, count As Integer
  Dim Result, t As String
  For i = 1 To Content.Length
  t = Format(AscW(Mid(Content, i)), "X")
  For count = 1 To 4 - t.Length
  t = "0" & t
  Next
  Result += t
  Next
  Return Result
  End Function