mtk*_*nko 16 c# unicode encoding utf-8
我创建了两个具有相同内容的"txt文件"(Windows记事本)"谢谢 - спасибо"并将它们保存在utf8和unicode中.在记事本中他们看起来很好.然后我尝试使用.Net读取它们:
...File.ReadAllText(utf8FileFullName, Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)
和
...File.ReadAllText(unicodeFileFullName, Encoding.Unicode);
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下我都得到了这个"谢谢 - ???????".怎么了?
Upd:utf8的代码
static void Main(string[] args)
{
var encoding = Encoding.UTF8;
var file = new FileInfo(@"D:\encodes\enc.txt");
Console.OutputEncoding = encoding;
var content = File.ReadAllText(file.FullName, encoding);
Console.WriteLine("encoding: " + encoding);
Console.WriteLine("content: " + content);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
结果: 谢谢ÑпаÑибо
key*_*rdP 15
编辑为UTF8应该支持角色.您似乎正在输出到控制台或没有编码设置的位置.如果是这样,您需要设置编码.对于控制台,您可以执行此操作
string allText = File.ReadAllText(unicodeFileFullName, Encoding.UTF8);
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine(allText);
Run Code Online (Sandbox Code Playgroud)
使用默认的编码类型
File.ReadAllText(unicodeFileFullName, Encoding.Default);
Run Code Online (Sandbox Code Playgroud)
它将修复????Chracters。
| 归档时间: |
|
| 查看次数: |
36510 次 |
| 最近记录: |