【发布时间】:2013-06-07 17:29:05
【问题描述】:
我试过这个:
byte[] buffer = (byte[])mf.Input;
//Here, the buffer comes from a serial input
string result = System.Text.Encoding.UTF8.GetString(buffer)
string result2 = System.Text.Encoding.ASCII.GetString(buffer);
还有其他一些类似的方法。但它返回一些奇怪的字符......我该如何真正转换它?
这是我得到的值:“�??3?&?5?”
它应该返回给我一个Card ID 值,比如B54A7WQ912
缓冲区值为:`buffer {byte[12]}
[0]168
[1]63
[2]18
[3]63
[4]21
[5]...
[6]....
[7]....
[8]...
[9]...
[10]...
[11]...
每个都有一个值。
更新
现在我可以Write/Read 进入/来自RFID Mifare 卡。但是像á,ã,à,è 这样的特殊字符没有显示,而是显示?。我该如何解决?谢谢 !
Obs:我正在使用上面的方法/\
【问题讨论】:
-
这是正确的方法,但如果您没有选择正确的编码,它将无法工作。您绝对确定原始文本不是 ANSI 或 ASCII 吗?
-
什么奇怪的字符?缓冲区是否可能已部分填充?
-
传输字符串的编码是什么?
-
字符串以什么编码形式出现?数组的值是多少?什么是“奇怪的字符”?
-
您提供的前 5 个字节既不是 utf8 也不是 ascii。提供更多数据和期望值。 card-id 是 10 个字符,我们有 12 个字节。有些东西没有加起来。