我可以使用纯SQL将SQL Server varbinary列中的字节数组转换为字符串吗?

时间:2014-12-01 15:58:00

标签: c# sql-server unicode encoding

我有一个字符串,我将通过Unicode在C#中将其转换为字节数组:

var myString = "Hello World!";
var bytes = Encoding.Unicode.GetBytes(myString)

然后我将其插入SQL Server中的varbinary列:

var command = new SqlCommand();
command.CommandText = "INSERT INTO Data (value) VALUES (@value)";
command.Parameters.AddWithValue("value", bytes);

所以,在"值"列,我有一个字节数组,通过Unicode以C#编码。

有没有办法解决这个纯粹的SQL,而不是把它拉出来并用C#解码?在某些情况下,我想在SQL中使用文本值,我不想首先将它带回C#。

修改

我试过这个:

 SELECT CONVERT(NVarChar(40), value) FROM Data

然而,结果是某种类型的亚洲字符串(看起来像汉字),它告诉我编码已关闭。

解决

我是个白痴。进一步挖掘产生了实际的C#代码......

Encoding.ASCII.GetBytes(myString)

尝试在SQL中解码它不起作用 - 用ASCII编码的那些不能通过Unicode(-ish)解码。

0 个答案:

没有答案