关于c#:在Windows窗体中设置文本框编码

Setting textbox encoding in Windows Forms

当我试图从文件中获取一些文本并将其显示在文本框中时,直到我想写捷克字符(例如???)他们出现的样子是:Moj? nejv?t?? z?libou je ?e?en? koresponden?n?ch semin???

我应该在将加载的文本分配给textbox 1.text之前设置编码,还是可以更改textbox 1.text本身的编码?

我使用以下代码:

1
textBox1.Text = File.ReadAllText(file);


试着部队的编码(机器要违约的原因,如果你不知道"是的先生一个): P / < >

1
textBox1.Text = File.ReadAllText(file,Encoding.Default);

无论如何,我猜你的当前被捷克违约的编码"西方欧洲(Windows)"(你能得到它也做Encoding.GetEncoding(1252)) P / < >

这也是一个在我的电脑(我有一个意大利版的win7)。 P / < >


从msdn为readalltext() P / < >

This method attempts to automatically
detect the encoding of a file based on
the presence of byte order marks.
Encoding formats UTF-8 and UTF-32
(both big-endian and little-endian)
can be detected.

Use the ReadAllText(String, Encoding)
method overload when reading files
that might contain imported text,
because unrecognized characters may
not be read correctly.

尝试使用其他的编码到超载的explicitly specify *由于自动探测不工作的情况下在你的东西,像 P / < >

1
textBox1.Text = File.ReadAllText(file, Encoding.UTF8);