2014-12-14 3 views
0

У меня есть функция, которая преобразует строку в массив байтов. Если строка написана на английском языке, функция работает нормально. Но если входная строка является арабской, функция не возвращает, и я получаю эту ошибку:Преобразование арабской строки в массив байтов

Value was either too large or too small for an unsigned byte

Friend Function StringtoByteArray(ByRef value As String) As Byte() 
    Dim temp() As Byte 
    ReDim temp(Len(value) - 1) 
    Dim i As Integer 
    For i = 0 To Len(value) - 1 Step 1 
     temp(i) = Convert.ToByte(Convert.ToChar(Mid(value, i + 1, 1))) 
    Next 
    StringtoByteArray = temp 
End Function 

Что нужно изменить, чтобы преобразовать арабские символы в байты?

Я использую VB.NET.

+0

проблема решена Friend Function (значение ByRef As String) StringtoByteArray As Byte() Try Dim rawBytes As Byte () = System.Text.Encoding.Default.GetBytes (значение) StringtoByteArray = rawBytes Поймайте ех Как Exception MsgBox (ex.Message) End Try End Function – Mohammad

ответ

1

Вам не нужно написать функцию для этого, это должно работать:

Dim b As Byte() = System.Text.Encoding.Unicode.GetBytes(value) 
Смежные вопросы