我已经找到了这个question的答案,建议如下:
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中,我遇到了一些编码问题。
答案 0 :(得分:2)
您必须指定原始编码,因为没有可靠的方法来确定它。请参阅How to detect the character encoding of a text file?以获取有关各种编码的详细答案以及无法自动确定的原因。
答案 1 :(得分:1)
无法(可靠地)检测编码。编码不存储在string
对象中,因为它始终是UTF-16,或者实际上,如果您使用其他内容,则以字节表示形式存储。
您需要手动存储字符集并使用它转换为其他编码。
在this question中,有几个例子可以尝试检测某些编码。
的相关引用在不知道它使用的编码的情况下使用字符串是没有意义的。