【问题标题】:How to send bulk SMS that contain Unicode characters?如何发送包含 Unicode 字符的群发短信?
【发布时间】:2019-07-12 19:45:37
【问题描述】:

我正在使用批量 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();

希望你们给我一个解决方案?

【问题讨论】:

    标签: c# bulksms


    【解决方案1】:

    SMS 对 unicode 字符使用 UCS-2 字符集(每个字符 16 位,因此您的最大长度减半)。如果您的源字符串不兼容 ASCII,那么您需要转换为 UCS-2。具体操作方法见Convert to UCS2

    【讨论】:

    • 试过了。但结果是一样的。
    • 您确定您使用的 API 能够发送 Unicode 字符吗?
    • 是的.. 我将值直接传递给它工作时的 URL。当我尝试通过 XML 传递值时不起作用。
    • 那么问题似乎出在您的 XML 上。你确定它被保存为 UTF-8 而不是 ASCII?
    • 这是我的 XML 文件 9471244080294115753753ඔබ තෝරන භාෂාවෙන් ටයිප් කිරීම23编码>****************
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2023-03-13
    • 2020-04-29
    相关资源
    最近更新 更多