验证通过的时候,写进数据库的mac地址是正常的例如:
90-2B-34-0E-20-FF
如果跳过验证直接写入sql数据库,数据表里的数据就有异常例如:
?90-2B-34-0E-20-FF
就是前面多了个问号,经过调试,传参数进去的确实是正常的,写入数据库后竟然多了个问号,百思不得姐!!!
System.Text.Encoding.GetEncoding("utf-8")先进行一下编码转换试试。
除了这个方法呢?
非常感谢解答:
一般的是先编码保存进数据库,读取的时候解码,我这边没有做编码解码操作,是做了MAC字符串的验证,如果通过验证,直接赋值保存进数据库
System.Text.Encoding.GetEncoding("utf-8")
但是你说的这句是怎么用的?我主要不知道这个怎么用
是不是直接在获取MAC之前写上这句?
@大da脸:将你获取的保存Mac的那个字段进行一下编码转换;string mac = System.Text.Encoding.GetEncoding("utf-8").toString();
@徒然喜欢你: 好的 我试下
@徒然喜欢你:
string td_mac = System.Text.Encoding.GetEncoding("utf-8").ToString(); td_mac = context.Request.Form["td_mac"];
是这样吗?
@大da脸: 是的,你试下吧
@徒然喜欢你: 保存进去后还是带有问号...好奇怪
@大da脸: 你调试一下转换后的值是什么,如果不带问号的话很有可能是二楼说的那个原因
@徒然喜欢你: 我调试看了 转后的结果确实没有?号,那这样的话,应该怎么破?
@大da脸: 你问一下二楼,可能是他说的那个原因
@徒然喜欢你: 你看是不是应该这样写?这是我刚在网上找的
例如: var gb0 = System.Text.Encoding.GetEncoding("UTF-8"); Console.WriteLine(gb0.GetString(gb0.GetBytes("测试")));
@大da脸: 这跟刚才那样一个道理,哈哈
@徒然喜欢你: 嗯 ,那我还真没招了,这样保存到数据库 还是带?号
@大da脸: 实在不行在数据库取数据的时候根据?拆分一下,只比较问号后面的值
问号 很可能时utf-8 的bom头。可以看一下问号的二进制确认一下
果然GB2312的头部
换成UTF-8就没这个问号了
但是提交保存到数据库后的结果还是有带“?”问号
这不就是编码问题吗
如果是1楼大侠说的这个的问题System.Text.Encoding.GetEncoding("utf-8")
这句代码要怎么用?
@大da脸: 你传进去的字符串没问题,保存到数据库之后就有了,考没考虑过修改一下数据库的编码格式?
@猝不及防: 这怎么修改?数据库的编码格式?
我这个是sql数据库,编码格式这个东西数据库方面我还是头一次听说,具体怎么修改我还真不知道。。
@大da脸: 你是啥数据库就百度设置啊,我遇到过mysql数据库默认不能显示汉语,你必须得设置表的编码