当前位置: 首页 > news >正文

阜宁网站开发男生都知道的微信公众号

阜宁网站开发,男生都知道的微信公众号,厦门网站制作费用明细,做钓鱼网站会被抓吗一、基本概念System.Text.Encoding 是 C# 中处理字符编码与转换的核心类,核心作用是:建立字符串(字符序列) 与字节数组(二进制数据) 之间的转换桥梁实现不同编码格式(如 UTF-8、ASCII 等&#x…

一、基本概念

System.Text.Encoding 是 C# 中处理字符编码与转换的核心类,核心作用是:

  • 建立字符串(字符序列)字节数组(二进制数据) 之间的转换桥梁

  • 实现不同编码格式(如 UTF-8、ASCII 等)的映射规则,解决 “人类可识别字符” 与 “计算机存储的二进制” 之间的转换问题

二、常用编码格式及区别

编码格式特点适用场景
Encoding.ASCII仅支持 0-127 范围字符(英文、数字、基础符号),超出范围替换为?纯英文场景(如早期协议)
Encoding.UTF8可变长度(1-4 字节),支持全球所有字符,兼容 ASCII,空间高效多语言文本、网络传输(HTTP/JSON)、文件存储
Encoding.Unicode固定 2 字节(UTF-16 Little-Endian),支持所有字符,Windows 系统常用Windows 本地文件、.NET 内部字符串(部分场景)
Encoding.UTF32固定 4 字节,支持所有字符,空间占用大需固定长度编码的特殊场景

三、核心方法(转换操作)

1. 字符串 → 字节数组(编码)

  • 基础方法GetBytes(string s) 例:byte[] utf8Bytes = Encoding.UTF8.GetBytes("你好");(中文 “你好” 在 UTF-8 中占 6 字节)

  • 重载方法GetBytes(string s, int index, int count, byte[] bytes, int byteIndex) 作用:仅转换字符串的部分内容(从index开始,取count个字符),并写入目标字节数组的byteIndex位置,适合大数据处理(减少临时数组)

2. 字节数组 → 字符串(解码)

  • 基础方法GetString(byte[] bytes) 例:string str = Encoding.UTF8.GetString(utf8Bytes);

  • 重载方法GetString(byte[] bytes, int index, int count) 作用:仅解码字节数组的部分内容(从index开始,取count个字节)

3. 获取指定编码

  • Encoding.GetEncoding(string name):通过编码名称获取对象(名称不区分大小写) 例:Encoding gbk = Encoding.GetEncoding("GBK");(.NET Core 需额外安装支持包)

四、避坑要点:为什么会乱码?

  • 本质:编码和解码使用了不同的规则(如 UTF8 编码的字节用 ASCII 解码)。

  • 解决原则:编码与解码必须使用同一种规则。

五、实际场景示例

1. 网络通信(确保跨系统一致性)

// 发送方:字符串→UTF8字节
string sendText = "Hello,世界";
byte[] sendBytes = Encoding.UTF8.GetBytes(sendText);
​
// 接收方:UTF8字节→字符串
byte[] receiveBytes = ...; // 从网络接收的字节
string receiveText = Encoding.UTF8.GetString(receiveBytes);

2. 文件读写(匹配文件编码)

// 写入UTF8编码文件(无BOM)
string content = "中文内容";
byte[] fileBytes = Encoding.UTF8.GetBytes(content);
File.WriteAllBytes("file.txt", fileBytes);
​
// 读取时用相同编码
byte[] readBytes = File.ReadAllBytes("file.txt");
string readContent = Encoding.UTF8.GetString(readBytes);

3. 多编码转换(如 GBK→UTF8)

// 假设bytes是GBK编码的字节
byte[] gbkBytes = ...;
// 步骤1:用GBK解码为字符串
string text = Encoding.GetEncoding("GBK").GetString(gbkBytes);
// 步骤2:用UTF8重新编码为字节
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);

总结

Encoding类是 “字符 - 字节” 转换的 “翻译官”,核心价值在于多语言、跨平台、跨系统场景中确保数据正确传递

  • 优先使用UTF8(兼容性最强);

  • 避免依赖系统默认编码(不同系统默认编码可能不同)

http://www.dtcms.com/a/590778.html

相关文章:

  • 山东企业建站系统费用企业安全文化宣传标语
  • 堆相关算法题基础-java实现
  • 鹿泉城乡建设局网站织梦网站怎么上传
  • 宜昌有做网站的公司吗苏州市住房和城乡建设局投折网站
  • 合肥企业自助建站用电信固定IP做网站
  • 推荐网站建设的电销该怎么打工商信息公示系统查询
  • wordpress自定义字段怎么用杭州seo网站推广软件
  • 网站格式有哪些赞皇建站建设
  • 贵阳专业做网站的公司有哪些住房和建设厅网站
  • 宁波优化网站排名软件网站建设软件开发
  • 山西网站建设报价单深圳建站公司推荐
  • 怎么在网站上做推企业代运营公司
  • 易语言可以做网站wordpress友情链接页面插件
  • deepseek的理解
  • 网站规划有前途吗学做ppt推荐网站
  • 中国工商网官方网站免费制作短视频的软件
  • 宁波网站推广设计怎么查网站的浏览量
  • 湖北建设网站信息查询中心北京造价信息网官网
  • 四平市城乡建设局网站网络营销工具优缺点
  • wordpress 站群有官网建手机网站
  • org.apache.ibatis.ognl.OgnlException
  • 电子商务网站建设计划书如何推广我的网站
  • 成功案例 品牌网站宣传推广方案怎么写
  • 响应式网站和普通网站不同广告制作行业
  • 线程相关知识(java)
  • 我用python+C++写了个密码检测引擎,学完这个项目理解底层算法
  • 网站设计宁波苏州那家公司做网站比较好
  • 天津网站快速排名提升网络推广外包哪家好
  • 网站定制开发四大基本原则北京品牌网站建设公司排名
  • 青岛开发区建网站公司街道网站建设