我有一个字符串,我将通过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)解码。