当前位置:   article > 正文

C# 基础回顾——字符串与字符数组的相互转换_system.text.encoding.default.getbytes转换数组少了几个字节

system.text.encoding.default.getbytes转换数组少了几个字节

之前一直没有写博客的习惯,就从今天开始养成吧。

正好今天在小城菇凉的博客里看到关于字符串与字节数组的相互转换的知识,有很详细的讲解:

https://www.cnblogs.com/xiaoqingshe/p/5882601.html

我这里主要摘录字符串与字节数组的相互转换:

//字符串转字节数组
var strToBytes1 = System.Text.Encoding.Default.GetBytes(str1);
这里Defaul是编码方式,类似的还可以是UTF-8、Unicode、ASCII等

 

//字节数组转字符串

var byteToString1 = System.Text.Encoding.UTF8.GetString(strToBytes1);
这里与上面类似就不多说了

还有要补充的一点:有时候我们按照指定的编码方式解析得到的字符串并是不我们想要的字符串,比如说:字节数组里存放着189 273 345,解析后可能得到汉字“我爱你”,而我们想要的是字符串“189 273 345”;我们可以尝试将字节数组中的每个元素ToString();

  1. string strNew = "";
  2. for (int i = 0; i < MD5Buffer.Length; i++)
  3. {
  4. strNew += MD5Buffer[i].ToString("x2");
  5. }
  6. return strNew;

但是如果是未知编码方式呢?  
比如用FileStream从一个文件中读取了流到byte[]中,这时候并不知道这个文件的编码方式是gb2312还是utf-8,如何才能正确的取到string值?

可以试试: 
StreamReader sr = new StreamReader(new MemoryStream(byteArray));

string str = sr.ReadToEnd();

 
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/253395
推荐阅读
相关标签
  

闽ICP备14008679号