0

我正在使用批量 SMS 应用程序。它工作正常,但是当我发送带有 Unicode 字符的消息时,我的手机显示为???????? .

我正在使用一个包含 URL、数字和消息正文的 XML 文件。

我的代码是这样的:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byteArray = Encoding.UTF8.GetBytes(xml);
string text = Encoding.UTF8.GetString(byteArray);
request.ContentType = "text/xml; encoding='utf-8'";

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome / 41.0.2228.0 Safari / 537.36";
request.Accept = "text/xml,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();

if (response.ContentLength > 0)
{
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    dataStream = response.GetResponseStream();

    using (StreamReader reader = new StreamReader(dataStream))
    {
        returnValue = reader.ReadToEnd();
    }
}
else
{
    returnValue = "ERROR" + " " + "No Response From Jasmin";
}

Console.WriteLine(returnValue);
dataStream.Close();
response.Close();

希望大家给我解决这个问题?

4

1 回答 1

0

SMS 对 unicode 字符使用 UCS-2 字符集(每个字符 16 位,因此您的最大长度减半)。如果您的源字符串不兼容 ASCII,那么您需要转换为 UCS-2。有关如何执行此操作,请参阅转换为 UCS2

于 2019-05-10T12:42:57.697 回答