Web services 如何使用clickatell发送希伯来语短信

Web services 如何使用clickatell发送希伯来语短信,web-services,sms,hebrew,clickatell,Web Services,Sms,Hebrew,Clickatell,如何通过Clickatell发送希伯来语短信 它以乱七八糟的方式出现在设备上。是unicode格式的吗?如果我没记错的话,它们要求将unicode转义为十六进制表示。这应该在他们的文档中 然而,当我这样做时,我发现这不是唯一的问题,许多手机不支持正确显示unicode字符 此外,发送unicode可能会产生更高的成本,因为它可能会被拆分 是unicode格式的吗?如果我没记错的话,它们要求将unicode转义为十六进制表示。这应该在他们的文档中 然而,当我这样做时,我发现这不是唯一的问题,许多手

如何通过Clickatell发送希伯来语短信


它以乱七八糟的方式出现在设备上。

是unicode格式的吗?如果我没记错的话,它们要求将unicode转义为十六进制表示。这应该在他们的文档中

然而,当我这样做时,我发现这不是唯一的问题,许多手机不支持正确显示unicode字符


此外,发送unicode可能会产生更高的成本,因为它可能会被拆分

是unicode格式的吗?如果我没记错的话,它们要求将unicode转义为十六进制表示。这应该在他们的文档中

然而,当我这样做时,我发现这不是唯一的问题,许多手机不支持正确显示unicode字符


此外,发送unicode可能会产生更高的成本,因为它可能会被拆分

将邮件编码为unicode,请参阅以获取详细信息。

将邮件编码为unicode,请参阅以获取详细信息。

遇到相同问题。。。您需要编码为unicode,然后转换为十六进制。奇怪的是,您需要获取最后一个值并将其附加到前面,以便使其工作。我通过比较代码的结果和他们在线工具的输出发现了这一点

    private string ToUnicode(string val)
    {
        Encoding utf8 = Encoding.UTF8;
        Encoding unicode = Encoding.Unicode;

        byte[] utf8Bytes = utf8.GetBytes(val);

        byte[] unicodeBytes = Encoding.Convert(utf8, unicode, utf8Bytes);

        var result = ByteArrayToString(unicodeBytes);
        result = result.Substring(result.Length - 2, 2) + result.Substring(0, result.Length - 2);
        return result;
    }

    public static string ByteArrayToString(byte[] ba)
    {
        StringBuilder hex = new StringBuilder(ba.Length * 2);
        foreach (byte b in ba)
            hex.AppendFormat("{0:x2}", b);
        return hex.ToString();
    }

遇到了同样的问题。。。您需要编码为unicode,然后转换为十六进制。奇怪的是,您需要获取最后一个值并将其附加到前面,以便使其工作。我通过比较代码的结果和他们在线工具的输出发现了这一点

    private string ToUnicode(string val)
    {
        Encoding utf8 = Encoding.UTF8;
        Encoding unicode = Encoding.Unicode;

        byte[] utf8Bytes = utf8.GetBytes(val);

        byte[] unicodeBytes = Encoding.Convert(utf8, unicode, utf8Bytes);

        var result = ByteArrayToString(unicodeBytes);
        result = result.Substring(result.Length - 2, 2) + result.Substring(0, result.Length - 2);
        return result;
    }

    public static string ByteArrayToString(byte[] ba)
    {
        StringBuilder hex = new StringBuilder(ba.Length * 2);
        foreach (byte b in ba)
            hex.AppendFormat("{0:x2}", b);
        return hex.ToString();
    }

我找不到任何有效的例子,所以我写了自己的:

试试这个:

UnicodeEncoding unicode = new UnicodeEncoding(true, false);
return string.Concat(unicode.GetBytes(val).Select(c => string.Format("{0:x2}", c)));

我找不到任何有效的例子,所以我写了自己的:

试试这个:

UnicodeEncoding unicode = new UnicodeEncoding(true, false);
return string.Concat(unicode.GetBytes(val).Select(c => string.Format("{0:x2}", c)));

我在阿拉伯语中使用了以下逻辑。。它需要更多的测试。语言是VB.Net

这是转换部分

私有函数ToUnicode(ByVal strVal作为字符串)


我对阿拉伯语使用了以下逻辑。。它需要更多的测试。语言是VB.Net

这是转换部分

私有函数ToUnicode(ByVal strVal作为字符串)