在Windows窗体中设置文本框编码

问题描述

| 当我尝试从文件获取一些文本并将其显示在文本框中时,直到我要编写捷克字符(例如čšž)之前,都可以。它们显示为:
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);