1

UTF8 でエンコードされた文字列を Web サービスに渡すことはできますか?

更新しました:

Function EncodeToUTF(ByVal toEncode As String) As String
    Dim utf8 As New UTF8Encoding()

    Dim encodedBytes As Byte() = utf8.GetBytes(toEncode)
    Dim returnValue As String = utf8.GetString(encodedBytes)
    returnValue = HttpUtility.UrlEncode(returnValue)
    Return returnValue
End Function 

そして、これを Web サーバーでデコードしますか? 問題は、XML Web サービス パーサーが文字列から CR を削除していることです。

次に、サーバー側でデコードします。

Function DecodeFromUTF8(ByVal encodedData As String) As String
    Dim utf8 As New UTF8Encoding()

    Dim returnValue As String = HttpUtility.UrlDecode(encodedData)
    Dim encodedDataAsBytes As Byte() = utf8.GetBytes(returnValue)

    returnValue = utf8.GetString(encodedDataAsBytes)

    Return returnValue
End Function

ここでの returnValue はまだエンコードされています。

4

1 に答える 1

1

文字列/メッセージを URL エンコードする必要があります。メッセージには特殊文字が含まれているため、Web サービスに送信する前にメッセージを URL エンコードする必要があります。

Function EncodeToUTF(ByVal toEncode As String) As String
    Dim utf8 As New UTF8Encoding()

    Dim encodedBytes As Byte() = utf8.GetBytes(toEncode)
    Dim returnValue As String = utf8.GetString(encodedBytes)

    '' URL encode your string before pushing it to a web service
    returnValue = HttpUtility.UrlEncode(returnValue)

    Return returnValue
End Function

そして、もう一方のサーバー側では、次を使用してエンコードされた文字列をデコードします。

Dim decodedUrl As String = HttpUtility.UrlDecode(encodedUrl)

うまくいけば、これで問題が解決します。

于 2013-06-11T18:40:11.023 に答える