c# - 在 C# 中将字符串 (UTF-16) 转换为 UTF-8

标签 c# .net encoding utf-8

我需要在 C# 中将字符串转换为 UTF-8。我已经尝试了很多方法,但没有一个能如我所愿。 我将我的字符串转换为一个字节数组,然后尝试将它写入一个 XML 文件(编码为 UTF-8 ....)但是要么我得到了相同的字符串(根本没有编码)要么我得到了一个列表没用的字节.... 有人面临同样的问题吗?

编辑: 这是我使用的一些代码:

str= "testé";
byte[] utf8Bytes = Encoding.UTF8.GetBytes(str);
return Encoding.UTF8.GetString(utf8Bytes);

结果是“testé”或者我期望的结果是“testé”...

最佳答案

C# 中的字符串总是 UTF-16,没有办法“转换”它。只要您在内存中操作字符串,编码就无关紧要,仅当您将字符串写入流(文件、内存流、网络流...)时才重要。

如果要将字符串写入XML文件,只需在创建XmlWriter时指定编码即可

关于c# - 在 C# 中将字符串 (UTF-16) 转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198744/

相关文章:

python - Python 中的 UTF-8

unicode - UTF-8 编码如何识别单字节和双字节字符?

php - PHP 中 mb_detect_order() 的奇怪行为

c# 如何编写返回枚举的抽象方法

c# - WCF 安全认证

c# - P/Invoke 调用中的 AccessViolationException

c# - 修复 global.asax 中的语法错误

c# - Xamarin : Objective-C exception on adding objects to an observable collection

c# - 如何从 ORed 标志中检索返回值

c# - 使用 VSTO 在 Excel 中创建命名范围的事件