请问,十六进制的数据:[09 B1 4F 50 44 4F 4F 52 00 B8],转成字符串应该是什么?
十六进制的数据:[2E 2E 4F 50 44 4F 4F 52 2E 2E],转成字符串应该是什么?
用代码如何实现?
十六进制的数据:[2E 2E 4F 50 44 4F 4F 52 2E 2E],转成字符串应该是什么?
用代码如何实现?
解决方案 »
- 为何打包后,客户端安装弹出提示有远程连接?
- 与 localhost 的连接已中断。这个问题
- 怎么移动到Button按钮上,右下角就出现说明文字?
- 如何获取FTP服务器上文件的上传日期
- ASP.NET OCX控件开发
- 有做多个分店的项目架构进来,项目架构难以取舍
- 如何能 将xml中的表 和 数据库的表联合查询
- 求手机正则表达式一个
- 关于反编译的问题
- 照着vc#帮助写了个xml web server,在winform中调用,当“添加 web 引用”--http://localhost/authorswebservice/authorswebservice.vs
- media player 有意思的故障.
- 请问c# winform post带cookie提交
Console.WriteLine(x.ToString("X")); //B1
string str = string.Empty;
for (int i = 0; i < bDate.Length; i++)
{
str += Convert.ToString(bDate[i], 16);
}
this.textBox1.Text = str;
这样转出来是 9b14f50444f4f520b8
byte[] bDate = new byte[] { 0x09, 0xB1, 0x4F, 0x50, 0x44, 0x4F, 0x4F, 0x52, 0x00, 0xB8 };
string str = string.Empty;
for (int i = 0; i < bDate.Length; i++)
{
str += Convert.ToString(bDate[i], 10);
}
this.textBox1.Text = str;
这样是出来是:91777980687979820184。
09=>9
B1=>117
等
{
//以%分割字符串,并去掉空字符
string[] chars = hs.Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries);
byte[] b = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < chars.Length; i++)
{
b[i] = Convert.ToByte(chars[i], 16);
}
//按照指定编码将字节数组变为字符串
return encode.GetString(b);
}然后使用这样的方法: string[] bDate = new string[] { "0x09", "0xB1", "0x4F", "0x50", "0x44", "0x4F", "0x4F", "0x52", "0x00", "0xB8" };
string str = string.Empty;
for (int i = 0; i < bDate.Length; i++)
{
str += CommClass.HexStringToString(bDate[i], Encoding.Default); }
Console.WriteLine(str);输出的结果是:
\t?OPDOOR\0?
一般来说都是下面3个编码中的一个
UTF-8
Unicode (UTF-16)
GB2312
用Encoding.ASCII UTF-8 或者直接
(char)0x4F (char)0x50 (char)0x44转换就行
结果是DPDOOR 前后两个字节估计是标识
using System.Text;// Encoded Hex bytes
byte[] bDate = new byte[] { 0x09, 0xB1, 0x4F, 0x50, 0x44, 0x4F, 0x4F, 0x52, 0x00, 0xB8 };
// Get the decoded string
string value = Encoding.Default.GetString(byte[]);
GB2312(包括其他GB系列字符集) 标准ASCII 1字节 汉字两字节 。但是外国人看就是乱码,因为电脑上没装这个字符集
UTF-16 都是2字节。
(UTF-8 UTF-16 都能够转换为Unicode编码,所以外国人电脑看起来也不是乱码)楼主的数据只有英文,用 UTF-8 GB2312 ASCII 来转换结果都是一样的。
并且由于标识位的存在 0xB1 0xB8 0x2E 用Encoding类去转换,还会出现乱码
还不如一个字节一个字节的处理
string[] datas = new string[] { "0x09", "0xB1", "0x4F", "0x50", "0x44", "0x4F", "0x4F", "0x52", "0x00", "0xB8" };
var arr=datas.Select(p=>byte.Parse(p)).ToArray();
var utf8Str= Encoding.UTF8.GetString(arr);
var gb2312Str=Encoding.GetEncoding("gb2312").GetString(arr);
//gb2312的可能性大因为它是2的倍数
请你装一下英文版的win7 在来说吧。我是亲自试验过的。