C#基础系列(6)-- 第二部分 字符串相关 -- byte[]与string之间的转换(1)

本文介绍了如何在FCL中实现字符串与不同编码格式的字节数组之间的转换,包括ASCII、Unicode、UTF-8及GB2312等,并展示了每种编码方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FCL的许多方法需要byte[]与字符串之间的转换,此时可以使用以下方法
byte [] bytes = Encoding.ASCII.GetBytes(str);
或者
byte [] bytes = Encoding.Unicode.GetBytes(str);
或者
byte [] bytes = Encoding.UTF8.GetBytes(str);
或者
byte [] bytes = Encoding.Default.GetBytes(str);

请参考以下示例:

输出结果为
97 109 97 110 100 97 103 63 63
97 0 109 0 97 0 110 0 100 0 97 0 103 0 216 154 76 107
97 109 97 110 100 97 103 233 171 152 230 173 140
97 109 97 110 100 97 103 184 223 184 232

这里也可以看出
对于ASCII编码,不支持的中文汉字以?号(ASCII值为63)显示
对于Unicode编码,则是每字符固定的2字节
对于utf-8编码,前面的英文字母都是占1个字节,汉字则是占3个字节(实际上是每字符1~3个字节)
对于gb2312,前面的英文字母都是占1个字节,汉字则是占2个字节

 

如果需要将byte[]转换为字符串,同样可以用以下方法
byte [] bytes = ...
string str = Encoding.ASCII.GetString(bytes);
或者
string str = Encoding.Unicode.GetString(bytes);
或者
string str = Encoding.UTF8.GetString(bytes);
或者
string str = Encoding.Default.GetString(bytes);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值