Если я преобразую Bytearray в Javascript в строку, используя следующий метод:
convertByteArrayToString: function(byteArray)
{
var s = '';
for(var i = 0;i < byteArray.length;i++)
{
s += String.fromCharCode(byteArray[i])
}
return s;
},
Как мне затем преобразовать эту строку обратно в байтовый массив в C #?
У меня естьпробовал все три из следующих:
System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding().GetBytes(myString);
System.Text.UTF32Encoding encoding = new System.Text.UTF32Encoding().GetBytes(myString);
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding().GetBytes(myString);
Самый близкий - первый, но он возвращает массив байтов, который удваивает длину оригинала, при этом каждый второй элемент в массиве равен 0, а иногда и невернозначение или два.
Насколько мне известно, String.fromCharCode работает в Юникоде, так как заставить его взаимодействовать с C #?
Это сводит меня с ума!
Редактировать:
Вот пример,
Исходный байтовый массив: [139, 104, 166, 35, 8, 42, 216, 160, 235, 153, 23, 143, 105, 3, 24, 255]
Моя функция преобразует это в: "h¦ # * Ø ëiÿ"
В C # при попытке декодировать эту строку в байтовый массив получается следующееРезультаты:
Использование System.Text.UnicodeEncoding дает: [142,0,139,0,104,0,166,0,35,0,8,0,42,0,216,0,32,0,235,0,153,0,23,0,143,0,105,0,30,24,0,255,0]