c# - 将问题 ANSI 转换为 UTF8 C#

标签 c# encoding utf-8 ansi

我在使用 C# 将文本文件从 ANSI 转换为 UTF8 时遇到问题。我尝试在浏览器中显示结果。

所以我有一个包含许多重音字符的文本文件。它是用 ANSI 编码的,所以我必须将它转换为 utf8,因为在浏览器中而不是 accentchars 出现“?”。无论我如何尝试转换为 UTF8,它仍然是一个“?”。但是,如果我将 notepad++ 中的文本文件转换为 utf8,那么重音字符就会显示得很好。

这是我编写的一段编码代码:

    public string Encode(string text)
    {
        // encode the string as an ASCII byte array
        byte[] myASCIIBytes = ASCIIEncoding.ASCII.GetBytes(text);

        // convert the ASCII byte array to a UTF-8 byte array
        byte[] myUTF8Bytes = ASCIIEncoding.Convert(ASCIIEncoding.ASCII, UTF8Encoding.UTF8, myASCIIBytes);

        // reconstitute a string from the UTF-8 byte array 
        return UTF8Encoding.UTF8.GetString(myUTF8Bytes);
    }

你知道为什么会这样吗?

最佳答案

Do you have any idea why is this happening?

是的,你来不及了。从文件中读取字符串时需要指定 ANSI。在内存中它始终是 Unicode (UTF16)。

关于c# - 将问题 ANSI 转换为 UTF8 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3778241/

相关文章:

C# ReadLine 问题

python - Unicode 问题,在 python 中正确解码/编码字符串

c# - 证书安装安全警告解决方法?

encoding - 带问号的钻石

python - Django:生产环境的编码问题

ios - NSString 到带有希腊字符的 char*

javascript - 如何在 JavaScript 中将字节数组存储到本地文件中?

python - 这是我当前写入文件的方式。但是,我不能做UTF-8?

c# - ConcurrentDictionary - 损坏的字典或错误的代码?

C# – 模拟方法以在使用 Moq 第二次调用时返回不同的值