asp.Net下短信猫发送短信中的中文乱码解决

 现象:
用c#编码调用短信猫发送包含中文字符的短信,但收到的总是乱码或问号(?),使用了Default, Unicode-16等多种编码方式仍然无效,而其他非中文字符都可以正常接收。
另外,在超级终端中直接输入AT指令发送中英文,可以正常接收显示。
我用的是TC35芯片的短信猫。

解决过程:
并不是所有的.Net项目都会出现这样的情况,VC++,VB编译后的程序执行也没有出现这样的情形。
于是考虑编写一个win32动态库来封装短信发送调用,.Net项目中再调用这个动态库。

主要步骤如下,

1、VC6.0 创建一个动态连接库,选择File->New菜单,弹出New对话框。在Projects标签页下,选择“Win32 Dynamic-Link Library”。创建一个空的动态库工程,记住动态库工程的名称 tc35.

2、加入一个.cpp文件,可以任意起名,注意如果没有这个文件,就不能生成动态库。
   具体的定义自己的函数
int MySendMsg(int iPort,char* sMsg,char* sPhone)
{
  // - 发送短消息
  return SendMsg(iPort,sMsg,sPhone,1,true);
}

3、加入一个.def文件,必须是这个后缀名
复制下面的代码,注意LIBRARY后面就是动态库的名字(动态库工程的名字)



LIBRARY tc35

DESCRIPTION     'My Tc35 Dll'
EXPORTS

MySendMsg

4、引用静态连接库:AscendSMS.lib

5、编译成功

6、c#中进行声明,
[DllImport("tc35.dll")]
  public static extern int MySendMsg(int iPort,string sMsg, string sPhone);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值