问题描述
|
当我尝试从文件中获取一些文本并将其显示在文本框中时,直到我要编写捷克字符(例如čšž)之前,都可以。它们显示为:
Moj� nejv�t�� z�libou je �e�en� koresponden�n�ch semin���
我是否应该在将加载的文本分配给textBox1.text之前就将其设置为编码,还是可以更改textBox1.Text本身的编码?
我使用以下代码:
textBox1.Text = File.ReadAllText(file);
解决方法
尝试强制编码(如果您不知道正确的编码,机器默认应为OK):
textBox1.Text = File.ReadAllText(file,Encoding.Default);
无论如何,作为捷克人,我想您当前的默认编码是\“西欧(Windows)\”(也可以通过Encoding.GetEncoding(1252)
获得它)
那也是我电脑上的那个(我有意大利语版本的Win7)。
,从MSDN获得ReadAllText()
此方法尝试自动
根据以下内容检测文件的编码
字节顺序标记的存在。
编码格式UTF-8和UTF-32
(大端和小端)
可以被检测到。
使用ReadAllText(String,Encoding)
读取文件时方法重载
可能包含导入的文本,
因为无法识别的字符可能
无法正确读取。
尝试使用其他重载来显式指定Encoding,因为自动检测在您的情况下不起作用,例如
textBox1.Text = File.ReadAllText(file,Encoding.UTF8);