C#如何把string转成UTF8,再存入SQLSERVER的varbinary里

l6208128 2016-08-24 07:04:18
string里面含有部分中文,因要求需要转成UTF8,一个中文是3个字节,我在组成string的时候,已经把中文部分用函数转成3个字节的,网上找的转UTF8的函数,然后最后用SQL的CONVER写入数据库,最后取出来中文还是乱码

不知道哪里有问题,不知道我这么做对不对,C#接触不深,望大咖赐教
...全文
281 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2016-08-25
  • 打赏
  • 举报
回复
为何不用字符串直接存中文?
吉普赛的歌 2016-08-25
  • 打赏
  • 举报
回复
SQL Servver里, 凡是有中文的地方, 用 nvarchar 就好了, 不会有乱码的。 至于你说的出错, 应该把sql贴出来, 而不是C#里做文章
l6208128 2016-08-24
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
关于如何往 varbinary 类型的字段写 byte[ ],你只要找一个例子就足够了。基本上,参数化sql语句,就能处理 byte[ ] 类型的值。而拼接 sql 语句字符串方式,只对字符串那类 sql 操作有效。 我不知道你如何“Convert”的,你也根本没有贴出来。我猜你并没有意识到要把这个计算出来的字节数组 byte[ ] 写入 varbinary 类型的字段,而是自己想象的其它数据写到字段里。
那我写入SQL的时候,直接用BYTE写入的吗?不知道怎么写,Convert的就是习惯用VARCHAR写进去的,然后SQL报错,要CONVERT转换,就写成CONVERT(VARBINARY(MAX),'字符串')了
我叫小菜菜 2016-08-24
  • 打赏
  • 举报
回复
我就看看不说话
fate_ling 2016-08-24
  • 打赏
  • 举报
回复
楼主加油,路过瞧瞧,
  • 打赏
  • 举报
回复
关于如何往 varbinary 类型的字段写 byte[ ],你只要找一个例子就足够了。基本上,参数化sql语句,就能处理 byte[ ] 类型的值。而拼接 sql 语句字符串方式,只对字符串那类 sql 操作有效。 我不知道你如何“Convert”的,你也根本没有贴出来。我猜你并没有意识到要把这个计算出来的字节数组 byte[ ] 写入 varbinary 类型的字段,而是自己想象的其它数据写到字段里。
  • 打赏
  • 举报
回复
所谓 utf8 就是这种东西
var utf8 = Encoding.UTF8.GetBytes("你好");
这样代码运行之后你就看到“你好”的 utf8 编码结果是 byte[6] 表示的。 至于你说的“然后最后用SQL的CONVER写入数据库”,我没有看懂你的意思,这样做想干什么呢?
mirrorspace 2016-08-24
  • 打赏
  • 举报
回复
不需要转,直接存入 数据库,程序,字符串都保证是UTF8的话。一般都没问题。
Poopaye 2016-08-24
  • 打赏
  • 举报
回复
数据库的字符集是utf8,那么写进去的时候就是utf8编码了 在c#和sql上转啊转,这不是画蛇添足么

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧