当前位置: 代码迷 >> Sql Server >> varchar门类能不能存储BYTE[]数组
  详细解决方案

varchar门类能不能存储BYTE[]数组

热度:530   发布时间:2016-04-24 09:14:08.0
varchar类型能不能存储BYTE[]数组
sql erver varchar类型能不能存储BYTE[]数组?我知道varbinrary可以存储,想问下varchar能不能存?比如有5个byte,存进去后是占5个字节吗?
------解决思路----------------------
如果你把Byte[]组装成string存到varchar的确是5个字符
------解决思路----------------------
不能。
varchar是语言相关的,如果字节表示的编码对应的不是该语言的有效字符,可能被替换成问号或直接丢弃。
不能保证字节内容不变,所以不能用varchar存储。
------解决思路----------------------
#4:不可以的。
string->byte[]->string 因为都是编码内合法的字符,可以正确还原。
byte[]->string->byte[] 第一步的时候就可能出错,数组的值可以在 U+0000~U+FFFF 全范围内取值,即使unicode编码也有些属于非法字符,会被替换掉。所以没法保证还原出一样的数组来。
------解决思路----------------------
可把二进制转为字符再存储

--可用系统函数处理
SELECT master.dbo.fn_varbintohexstr(0x01)
  相关解决方案