2013-06-11 4 views
1

Могу ли я передать кодированную строку UTF8 в веб-службу?Передача строки, закодированной utf8, на веб-службу

ОБНОВЛЕНО:

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 

А потом декодировать это на веб-сервере? Проблема в том, что синтаксический анализатор 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 здесь еще закодирован.

+0

Потому что вы его не расшифровали. – Learner

ответ

1

Вам необходимо URL-кодировать строку/сообщение. Сообщения должны быть закодированы в 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) 

Будет надеяться, что это решит проблему.

+0

Хорошо, тогда я предполагаю, что мне нужно сделать что-то вроде этого на веб-сервере для UrlDecode? – htm11h

+0

Именно это и есть идея. – Learner

+0

Не работает. Я скоро обновлю OP с расширением на стороне сервера. ОБНОВЛЕНО ОП. – htm11h

Смежные вопросы