1

Clickatellを介してヘブライ語でSMSを送信するにはどうすればよいですか?

それは、ぎこちないものとしてデバイスに到着します。

4

5 に答える 5

3

実用的な例が見つからなかったので、自分で書きました。

これを試して:

UnicodeEncoding unicode = new UnicodeEncoding(true, false);
return string.Concat(unicode.GetBytes(val).Select(c => string.Format("{0:x2}", c)));
于 2012-06-30T16:18:45.120 に答える
1

ユニコードですか?私の記憶が正しければ、Unicodeを16進表現にエスケープする必要があります。これは彼らのドキュメントにあるはずです。

しかし、これを行ったときに、これが唯一の問題ではなく、多くの電話がUnicode文字の適切な表示をサポートしていないことがわかりました。

また、Unicodeを送信すると、分割される可能性があるため、コストが高くなる可能性があります。

于 2009-05-17T10:41:39.287 に答える
1

メッセージをUnicodeとしてエンコードします。詳細については、このFAQページを参照してください。

于 2009-05-17T10:46:38.260 に答える
1

同じ問題が発生しました...Unicodeにエンコードしてから、16進数に変換する必要があります。奇妙なことに、それを機能させるには、最後の値を取得して先頭に追加する必要があります。私は自分のコードの結果を彼らのオンラインツールの出力と比較することによってこれを見つけました。

    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();
    }
于 2010-01-25T08:03:38.943 に答える
0

私はアラビア語に次のロジックを使用しました..ITにはさらにテストが必要です。言語はVB.Netです

    If txtArabic.Text.Trim.Length > 0 Then

        Dim unicodeString As String = txtArabic.Text
        Dim unicode As Encoding = Encoding.Unicode
        ' Convert the string into a byte array. 
        Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)

        Dim sb As String = ToUnicode(txtArabic.Text)

    End If

これが変換部分です

Private Function ToUnicode(ByVal strVal As String)

    Dim unicode As Encoding = New UnicodeEncoding(True, False)
    ' Encoding.Unicode
    Dim utf8 As Encoding = Encoding.UTF8
    Dim utf8Bytes() As Byte = unicode.GetBytes(strVal)
    Dim unicodeBytes() As Byte = Encoding.Convert(utf8, unicode, utf8Bytes)
    Dim result As String = ByteArrayToString(unicodeBytes)

    Return result
End Function

Private Function ByteArrayToString(ByVal ba() As Byte)
    Dim hex As StringBuilder = New StringBuilder(ba.Length)
    For i As Integer = 0 To ba.Length - 1

        If (((i - 2) Mod 4.0) = 0) Then
        Else

            hex.AppendFormat("{0:x00}", ba(i))
            ' hex.Append(ba(i))
        End If
        '   hex.Append("-")
    Next
    Return hex.ToString
End Function

于 2013-09-14T06:43:03.857 に答える