Как бороться со спецсимволами в VB.NET - PullRequest
1 голос
/ 20 июля 2011

Я получил текстовый файл, в котором такой текст, ãYAHOO.COM.Когда я отлаживаю в Visual Studio, значение, которое я вижу для символа, - «�» c.Во-первых, кто-нибудь может сказать, какой персонаж перед Yahoo.Это специальный символ или какой-то символ HTML, и какой символ я вижу в VS во время отладки.

Итак, все выглядит так, значение ascii символа оказывается 63. Нокогда я записываю значение в файл, он генерирует 3 символа, значения ascii которых выше 127. Очень странно

Как это можно сделать в VB.NET

Ответы [ 3 ]

1 голос
/ 20 июля 2011
  1. Найти персонажа. Попробуйте получить код ASCII символа:

    Response.Write(Asc(YourString.Substring(0, 1)))
    
  2. Очистите введенную строку. Создайте массив arrCh () со всеми символами ASCII, которые вы хотите удалить, и переберите строку с помощью:

    YourString = YourString.Replace(Chr(arrCh(i)),"")
    
0 голосов
/ 20 июля 2011

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

Dim reader As New StreamReader(myFileStream, System.Text.Encoding.Default)

Второй параметр представляет кодировку.Здесь мы используем кодировку по умолчанию (ANSI).Если у вас есть какие-то неизвестные или странные символы, использующие эту кодировку, вы можете попробовать использовать другую кодировку, например System.Text.Encoding.Utf8 или System.Text.Encoding.Ascii.

0 голосов
/ 20 июля 2011

Откройте текстовый файл в Блокноте и затем попытайтесь «сохранить как ...».Если файл ANSI или UNICODE?

, если ANSI, сохраните копию как UNICODE и повторите попытку с новым файлом.

Многие символы отображаются в Windows из файла ANSI, но Visual Basic "отказывается "сделать это, если вы явно не определили файл как Unicode (определяется значениями 255, 254 в первых 2 байтах файла)

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