我怎样才能强制将每个字符串编码为 UTF8,尽管其原始类型

本文关键字:UTF8 编码 类型 原始 字符串 | 更新日期: 2023-09-27 18:36:24

我已经找到了这个问题的答案,建议如下:

byte[] utfBytes = utf8.GetBytes(Message);  
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);  
string msg = iso.GetString(isoBytes);

通过这种方式,我可以将 utf8 编码的字符串转换为 iso 编码的字符串。
我需要转换为utf8,所以转换应该是这样的:

byte[] utfBytes= Encoding.Convert(iso, utf8, utfBytes);  

我想将收到的任何类型的字符串转换为 Utf8。有没有办法在不指定起始字符集的情况下进行类似的转换?
另外,有没有办法识别起始字符集?
在VisualStudio 2012中,我遇到了一些编码问题。

我怎样才能强制将每个字符串编码为 UTF8,尽管其原始类型

您必须指定原始编码,因为没有可靠的方法来确定它。请参阅如何检测文本文件的字符编码?有关各种编码的详细答案以及为什么无法自动确定它们。

没有办法(可靠地)检测编码。编码不存储在string对象中,因为它始终是 UTF-16,或者实际上,如果您使用其他内容,则以字节表示形式存储。

您将需要手动存储字符集并使用它来转换为另一种编码。

在这个问题中,有几个示例可以尝试检测一些编码。

这是来自每个软件开发人员绝对,肯定必须了解Unicode和字符集的相关引述(没有借口!

在不知道字符串使用什么编码的情况下拥有字符串是没有意义的。