Настройка кодировки текстового поля в Windows Forms - PullRequest
3 голосов
/ 13 апреля 2011

Когда я пытаюсь получить какой-либо текст из файла и отобразить его в текстовом поле, все будет в порядке, пока я не захочу писать чешские символы (например, čšž).Они отображаются как: Moj� nejv�t�� z�libou je �e�en� koresponden�n�ch semin���

Должен ли я установить кодировку для загруженного текста непосредственно перед тем, как назначить его textBox1.text, или можно изменить кодировку самого textBox1.Text?используйте следующий код:

textBox1.Text = File.ReadAllText(file);

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Попробуйте форсировать кодировку (по умолчанию машина должна быть в порядке, если вы не знаете правильную):

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

В любом случае, будучи чешским, я думаю, что текущая кодировка по умолчанию - "Западноевропейская"(Windows) "(вы также можете сделать это Encoding.GetEncoding(1252))

Это также на моем компьютере (у меня итальянская версия Win7).

0 голосов
/ 13 апреля 2011

С MSDN для ReadAllText ()

Этот метод пытается автоматически определить кодировку файла на основе наличия меток порядка байтов.Форматы кодирования UTF-8 и UTF-32 (как с прямым порядком байтов, так и с прямым порядком байтов) могут быть обнаружены.

Используйте перегрузку метода ReadAllText (String, Encoding) при чтении файлов, которые могут содержать импортированный текст, так как нераспознанныесимволы могут не читаться правильно.

Попробуйте использовать другую перегрузку, чтобы явно указать кодировку, так как автоматическое обнаружение не работает в вашем случае, что-то вроде

textBox1.Text = File.ReadAllText(file, Encoding.UTF8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...