首页 新闻 会员 周边

C#验证MAC地址,同一个mac地址有可以验证通过,有时候不行,这是为什么???

0
悬赏园豆:5 [已解决问题] 解决于 2018-10-28 15:46

验证通过的时候,写进数据库的mac地址是正常的例如:
‎  90-2B-34-0E-20-FF
如果跳过验证直接写入sql数据库,数据表里的数据就有异常例如:
?‎90-2B-34-0E-20-FF

就是前面多了个问号,经过调试,传参数进去的确实是正常的,写入数据库后竟然多了个问号,百思不得姐!!!

大da脸的主页 大da脸 | 初学一级 | 园豆:73
提问于:2018-10-26 10:14
< >
分享
最佳答案
0

System.Text.Encoding.GetEncoding("utf-8")先进行一下编码转换试试。

收获园豆:3
徒然喜欢你 | 小虾三级 |园豆:1741 | 2018-10-26 10:27

除了这个方法呢?

大da脸 | 园豆:73 (初学一级) | 2018-10-26 10:56

非常感谢解答:
一般的是先编码保存进数据库,读取的时候解码,我这边没有做编码解码操作,是做了MAC字符串的验证,如果通过验证,直接赋值保存进数据库

System.Text.Encoding.GetEncoding("utf-8")

但是你说的这句是怎么用的?我主要不知道这个怎么用

大da脸 | 园豆:73 (初学一级) | 2018-10-26 13:31

是不是直接在获取MAC之前写上这句?

大da脸 | 园豆:73 (初学一级) | 2018-10-26 13:33

@大da脸:将你获取的保存Mac的那个字段进行一下编码转换;string  mac = System.Text.Encoding.GetEncoding("utf-8").toString();

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 13:55

@徒然喜欢你: 好的 我试下

大da脸 | 园豆:73 (初学一级) | 2018-10-26 13:56

@徒然喜欢你: 

string td_mac = System.Text.Encoding.GetEncoding("utf-8").ToString();
            td_mac = context.Request.Form["td_mac"];

是这样吗?

大da脸 | 园豆:73 (初学一级) | 2018-10-26 13:59

@大da脸: 是的,你试下吧

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 14:00

@徒然喜欢你: 保存进去后还是带有问号...好奇怪

大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:02

@大da脸: 你调试一下转换后的值是什么,如果不带问号的话很有可能是二楼说的那个原因

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 14:04

@徒然喜欢你: 我调试看了 转后的结果确实没有?号,那这样的话,应该怎么破?

大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:05

@大da脸: 你问一下二楼,可能是他说的那个原因

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 14:10

@徒然喜欢你: 你看是不是应该这样写?这是我刚在网上找的

例如:
var gb0 = System.Text.Encoding.GetEncoding("UTF-8");
Console.WriteLine(gb0.GetString(gb0.GetBytes("测试")));
大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:11

@大da脸: 这跟刚才那样一个道理,哈哈

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 14:28

@徒然喜欢你: 嗯 ,那我还真没招了,这样保存到数据库 还是带?号

大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:29

@大da脸: 实在不行在数据库取数据的时候根据?拆分一下,只比较问号后面的值

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-26 14:31
其他回答(2)
0

问号 很可能时utf-8 的bom头。可以看一下问号的二进制确认一下

收获园豆:1
czd890 | 园豆:14412 (专家六级) | 2018-10-26 11:30

果然GB2312的头部

支持(0) 反对(0) 大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:14
换成UTF-8就没这个问号了

但是提交保存到数据库后的结果还是有带“?”问号

支持(0) 反对(0) 大da脸 | 园豆:73 (初学一级) | 2018-10-26 14:23
0

这不就是编码问题吗

收获园豆:1
猝不及防 | 园豆:2781 (老鸟四级) | 2018-10-26 11:50

如果是1楼大侠说的这个的问题System.Text.Encoding.GetEncoding("utf-8")

这句代码要怎么用?

支持(0) 反对(0) 大da脸 | 园豆:73 (初学一级) | 2018-10-26 13:40

@大da脸: 你传进去的字符串没问题,保存到数据库之后就有了,考没考虑过修改一下数据库的编码格式?

支持(0) 反对(0) 猝不及防 | 园豆:2781 (老鸟四级) | 2018-10-26 15:26

@猝不及防: 这怎么修改?数据库的编码格式?

我这个是sql数据库,编码格式这个东西数据库方面我还是头一次听说,具体怎么修改我还真不知道。。

支持(0) 反对(0) 大da脸 | 园豆:73 (初学一级) | 2018-10-26 16:19

@大da脸: 你是啥数据库就百度设置啊,我遇到过mysql数据库默认不能显示汉语,你必须得设置表的编码

支持(0) 反对(0) 猝不及防 | 园豆:2781 (老鸟四级) | 2018-10-26 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册