首页 > C# > 如何将 UTF-8 字节 byte[] 转换为字符串

如何将 UTF-8 字节 byte[] 转换为字符串

上一篇 下一篇

我有一个数组,它是从一个我碰巧知道包含 UTF-8 的文件加载的。byte[]

在某些调试代码中,我需要将其转换为字符串。有没有单行可以做到这一点?

在幕后,它应该只是一个分配和一个内存副本,所以即使它没有实现,它也应该是可能的。

分割线

网友回答:

当您不知道编码时从字节数组转换为字符串的通用解决方案:

static string BytesToStringConverted(byte[] bytes)
{
    using (var stream = new MemoryStream(bytes))
    {
        using (var streamReader = new StreamReader(stream))
        {
            return streamReader.ReadToEnd();
        }
    }
}

分割线

网友回答:

string result = System.Text.Encoding.UTF8.GetString(byteArray);

分割线

网友回答:

至少有四种不同的方法可以进行此转换。

  1. 编码的 GetString
    ,但如果这些字节具有非 ASCII 字符,您将无法取回原始字节。
  2. BitConverter.ToString
    输出是“-”分隔的字符串,但没有 .NET 内置方法将字符串转换回字节数组。
  3. Convert.ToBase64String
    您可以使用 轻松地将输出字符串转换回字节数组。
    注意:输出字符串可能包含“+”、“/”和“=”。如果要在 URL 中使用字符串,则需要对其进行显式编码。
    Convert.FromBase64String
  4. HttpServerUtility.UrlTokenEncode
    您可以使用 轻松地将输出字符串转换回字节数组。输出字符串已经是 URL 友好的!缺点是,如果您的项目不是 Web 项目,则需要组装。
    HttpServerUtility.UrlTokenDecodeSystem.Web

一个完整的例子:

byte[] bytes = { 130, 200, 234, 23 }; // A byte array contains non-ASCII (or non-readable) characters

string s1 = Encoding.UTF8.GetString(bytes); // ���
byte[] decBytes1 = Encoding.UTF8.GetBytes(s1);  // decBytes1.Length == 10 !!
// decBytes1 not same as bytes
// Using UTF-8 or other Encoding object will get similar results

string s2 = BitConverter.ToString(bytes);   // 82-C8-EA-17
String[] tempAry = s2.Split('-');
byte[] decBytes2 = new byte[tempAry.Length];
for (int i = 0; i < tempAry.Length; i++)
    decBytes2[i] = Convert.ToByte(tempAry[i], 16);
// decBytes2 same as bytes

string s3 = Convert.ToBase64String(bytes);  // gsjqFw==
byte[] decByte3 = Convert.FromBase64String(s3);
// decByte3 same as bytes

string s4 = HttpServerUtility.UrlTokenEncode(bytes);    // gsjqFw2
byte[] decBytes4 = HttpServerUtility.UrlTokenDecode(s4);
// decBytes4 same as bytes

模板简介:该模板名称为【如何将 UTF-8 字节 byte[] 转换为字符串】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 288次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-21
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信图片 微信模板 自适应 html5 企业网站 微信素材 微信公众平台 响应式 单页式简历模板 微信文章
您可能会喜欢的其他模板