Как преобразовать байты изображения в строку без изменения данных - PullRequest
1 голос
/ 22 июня 2011

Я сохранил свои данные изображения в двоичном поле на сервере SQL, и теперь мне нужно преобразовать мои данные байта [] в строку

Я использовал

System.Text.Encoding.ASCII.GetString(data);  
System.Text.Encoding.GetEncoding("shift_jis").GetString(data); 
System.Text.Encoding.GetEncoding("euc-jp").GetString(data);    
System.Text.Encoding.Unicode.GetString(data);   
System.Text.Encoding.UTF8.GetString(data); 

, а также Convert.ToBase64String

но они кодируют мои данные

как я могу преобразовать свой байт данных [] в строку без каких-либо изменений?

спасибо

Ответы [ 3 ]

4 голосов
/ 22 июня 2011

Я думаю, что вы здесь что-то не так.

Мне нужно использовать этот src = "data: image / png; base64, bytes of image"

Itговорит, что данные должны быть в кодировке base64, поэтому Convert.ToBase64String - это то, что вам нужно в этом случае.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

См. https://en.wikipedia.org/wiki/Data_URI_scheme

1 голос
/ 22 июня 2011

Кодируйте ваш байт [] как Base64.Base64 используется для представления двоичных данных в виде строки ASCII.

http://msdn.microsoft.com/en-us/library/dhx0d524.aspx

1 голос
/ 22 июня 2011

Сложно дать ответ, так как неясно, для чего это нужно.

То, что вы видите, не обязательно является проблемой кодирования.Если вы работаете с данными изображения, ваш байтовый массив обязательно должен содержать несколько нулей.Рассмотрим следующий пример:

byte[] b = new byte[] { 65, 0, 66 };
string s = System.Text.Encoding.ASCII.GetString(b);
System.Diagnostics.Debug.WriteLine(s);

Это дает вывод A вместо трех символов, как вы могли бы ожидать, поскольку символ 2 является нулевым символом.Но три символа действительно хранятся в строке, так как при наведении курсора мыши на s в строке три выше появляется всплывающая подсказка "A\0B".Поэтому, возможно, ваше сравнение делает что-то не так, @Damokles уже спросил, что именно вы делаете в этом отношении.

...