当前位置:编程学习 > C#/ASP.NET >>

求助关于网页发短信到手机上中文变乱码的问题

公司叫我做个短信发送页面,其中发送到手机上的功能是调用另一个公司提供的发送短信的WEBSERVICE接口的,我只要调用就行了。现在是短信可以发到手机上了,但是中文的在手机上就是乱码,对方公司数据库里也是乱码,我的发送页面用的是UTF-8编码,对方公司用的是GB2312编码,那现在应该怎么转码呢?我试了将GB2312转UTF-8,但不行,请高手帮忙,谢谢!
转码代码不知是否正确:
Encoding utf = Encoding.UTF8;
Encoding gb = Encoding.GetEncoding("gb2312");
byte[] data = gb.GetBytes(txtMsg.Text.Trim().ToString());
编码转换
byte[] result = Encoding.Convert(gb,utf,data);
char[] asciiChars = new char[utf.GetCharCount(result, 0, result.Length)];
utf.GetChars(result, 0, result.Length, asciiChars, 0);
string info = new string(asciiChars); --------------------编程问答-------------------- string utfinfo = "document.write(\"alert('你好么??');\");"; 
  string gb2312info = string.Empty; 
   
  Encoding utf8 = Encoding.UTF8; 
  Encoding gb2312 = Encoding.GetEncoding("gb2312"); 
   
  // Convert the string into a byte[]. 
  byte[] unicodeBytes = utf8.GetBytes(utfinfo); 
  // Perform the conversion from one encoding to the other. 
  byte[] asciiBytes = Encoding.Convert(utf8, gb2312, unicodeBytes); 
   
  // Convert the new byte[] into a char[] and then into a string. 
  // This is a slightly different approach to converting to illustrate 
  // the use of GetCharCount/GetChars. 
  char[] asciiChars = new char[gb2312.GetCharCount(asciiBytes, 0, asciiBytes.Length)]; 
  gb2312.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0); 
  gb2312info = new string(asciiChars); 
--------------------编程问答-------------------- bumm,这段代码我已经试过了,还是乱码的。有没有其他的办法了?  --------------------编程问答-------------------- 试试这个 ISO-8859-1  这个编码不知道会不会出错。 --------------------编程问答-------------------- 这个 ISO-8859-1编码该怎么用?是将UTF-8转成这个格式吗?手机不是接收UTF-8的编码吗?第1次碰到这种编码转换的问题,不知道该怎么解决,希望有高手能帮助! --------------------编程问答-------------------- 我也遇到过,公司说是他们的程序有问题,最后我们只能通过直接写入他们的数据库的办法来实现。来解决这个乱码的问题。 --------------------编程问答-------------------- 关注... --------------------编程问答-------------------- Server.UrlDecode(string) --------------------编程问答-------------------- 楼上的意思是将发送的信息内容直接先UrlDecode吗?能否写得再具体点,我还不大明白。 --------------------编程问答-------------------- Server.UrlDecode 是url地址转换用的跟这个问题有什么关系呢,关注... --------------------编程问答-------------------- 我也是遇到相同的问题,关注!!!!!
将url写到文本中,发现是3个字节的编码(共24位), --------------------编程问答-------------------- msgContent = System.Web.HttpUtility.UrlEncode(msgContent, System.Text.Encoding.GetEncoding("Gb2312"));
这样就可以了,结分吧 --------------------编程问答-------------------- 使用GB2312
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,