首页 > 后端开发 > C++ > 如何在 C# 中正确将 UTF-8 转换为 ISO-8859-1?

如何在 C# 中正确将 UTF-8 转换为 ISO-8859-1?

Patricia Arquette
发布: 2025-01-08 14:11:46
原创
353 人浏览过

How to Correctly Convert UTF-8 to ISO-8859-1 in C#?

解决C#中UTF-8到ISO-8859-1转换问题

在将UTF-8字符串转换为ISO-8859-1时,如果不正确处理,可能会遇到结果错误。让我们分析一下问题并提供解决方案。

代码及问题

您提供的代码片段尝试使用Encoding.GetStringEncoding.GetBytes将UTF-8转换为ISO-8859-1。但是,对于此特定转换,需要额外的步骤。

解决方案:使用Encoding.Convert

为了在解码到目标编码之前正确调整字节数组,应使用Encoding.Convert。以下是修改后的代码:

<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(Message);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
string msg = iso.GetString(isoBytes);</code>
登录后复制

解释

Encoding.GetEncoding检索特定字符编码的编码器和解码器。Encoding.GetBytes将UTF-8源字符串编码为字节数组。但是,直接使用Encoding.GetString解码此字节数组不会产生所需的ISO-8859-1字符串。

Encoding.Convert调整字节数组以符合目标编码。在这种情况下,它将字节转换为与ISO-8859-1编码匹配。随后,Encoding.GetString可以将调整后的字节数组解码为正确的ISO-8859-1字符串。

结果

应用此修改后,您的结果字符串将正确转换为ISO-8859-1,不会出现乱码。

以上是如何在 C# 中正确将 UTF-8 转换为 ISO-8859-1?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板