1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 如何把中文数字字符串转成十六进制byte[]

如何把中文数字字符串转成十六进制byte[]

时间:2023-08-27 06:41:37

相关推荐

如何把中文数字字符串转成十六进制byte[]

“3阿”如何转换才能得到结果:0xa30xb30xb00xa2

byte[]arr=Encoding.UTF-8.GetBytes("3阿");

不知道你这个是什么编码的,这个转出来是4个byte数组,你自已转成16进制,不过和你要的对不上。编码的问题?

byte[]arr=Encoding.ASCII.GetBytes("3阿");

var bytes = Encoding.GetEncoding("GB2312").GetBytes("3阿");

没错,是GB2312

/// 从汉字转换到16进制

/// </summary>

/// <param name="s">需要转换的字符串</param>

/// <returns>返回16进制</returns>

public static string GetHexFromChs(string s)

{

System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");

byte[] bytes = chs.GetBytes(s);

StringBuilder Text = new StringBuilder();

for (int i = 0; i < bytes.Length; i++)

{

Text.Append(string.Format("{0:X}", bytes[i]));

Text.Append(" ");

}

string ggg = Text.ToString();

string ggf = ggg.Substring(ggg.Length - 1, 1);

if (ggf == " ")

{

ggg = ggg.Remove(ggg.Length - 1, 1);

}

return ggg;

}

#endregion

如果对应的字符是中文的,那么UTF8是不管用的,必须使用Default或者GetEncoder("gb2312"),如果你的计算机本地 cultureandregion不是中文的话,default没用的,必须使用gb2312。不用循环每一个byte的,只要 用fangxinggood那样的方法就可以了

UTF-8编码当然能保存汉字,网页基本上都是UTF-8编码的

UTF-8标准ASCII1一个字节西欧的一般是2字节GJK(中日韩字符集)一般来说是3字节

GB2312(包括其他GB系列字符集)标准ASCII1字节汉字两字节。但是外国人看就是乱码,因为电脑上没装这个字符集

UTF-16都是2字节。

(UTF-8UTF-16都能够转换为Unicode编码,所以外国人电脑看起来也不是乱码)

楼主的数据只有英文,用UTF-8GB2312ASCII来小蜜蜂论坛回帖机转换结果都是一样的。

并且由于标识位的存在0xB10xB80x2E用Encoding类去转换,还会出现乱码

还不如一个字节一个字节的处理

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。