Неожиданный символ отображается в текстовом поле - PullRequest
4 голосов
/ 08 июня 2011

У меня очень простая программа .NET.Это просто написать строку в текстовое поле.В конце моей строки появляется странный символ.

enter image description here

Это происходит только на моем 32-битном компьютере с XP.Эта же программа отлично работает на другом 64-битном компьютере с Windows 2008.

Программа очень проста.

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.Text = "Hello\n\0\0\0\0\0\0";
    }

Я знаю, что странно добавлять \ 0 в конце строки иЯ могу обрезать их перед применением в текстовом поле.В текстовом поле разрешено использование нескольких строк.

Просто из любопытства кто-нибудь знает, откуда возникла проблема?На обеих машинах установлен .NET 3.5 SP1.Оба они имеют одинаковые региональные настройки.Я сомневаюсь, связан ли он с 32-разрядным или 64-разрядным.

ОБНОВЛЕНИЕ

Благодаря @DBM и @Andrew.Странный символ происходит из \ n, но не имеет ничего общего с \ 0.Похоже, что Windows 2008 может понимать как \ r \ n, так и \ n.Кто-нибудь может это подтвердить?

Ответы [ 2 ]

6 голосов
/ 08 июня 2011

Стандартная последовательность конца строки в Windows равна \r\n. В текстовом поле \n не распознается как новая строка без возврата каретки (\r).

5 голосов
/ 08 июня 2011

Вы должны использовать Environment.NewLine вместо \ r \ n, в общем.

В порядке объяснения: Environment.NewLine будет содержать правильную последовательность escape-символов для любой платформы, на которой запущено приложениеВ Windows это \ r \ n, но * nix (если я правильно помню) использует только \ n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...