Удалить специальные символы из файла - PullRequest
1 голос
/ 23 апреля 2010

Я пытаюсь открыть текстовый файл и удалить все специальные символы - и т. Д. ...

файл - это макет, который клиенты отправляют мне, и я анализирую его, чтобы отправить файл на сервер AS400, но мне нужно удалить все специальные символы.

ПРОБЛЕМА ЕСТЬ:

некоторые файлы с некоторыми специальными символами, когда я открываю его в c #, он читает специальные символы и два разных символа и перемещает всю строку на один пробел вправо, а затем информация, которая должна быть в этой позиции, не будет в порядке.

Я беру тот же файл и открываю его в Блокноте, и файл в порядке, но когда я открываю его в WordPad, он выглядит как 2 символа (только для одного особенного символа).

"0001 0003JUAN PEÑA33441JPENATEST"

Но в c # это показывает

"0001 0003JUAN PEï░A33441JPENATEST"

я использую кодировку 1251

любая помощь?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2010

У вас есть 2 проблемы: Чтение файла и удаление символов.

Вам необходимо прочитать файл в кодировке, в которой написано:

StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding("YOUR FILE ENCODING"));

Чтобы удалить символы, вы можете попробовать сделать это вручную ... Вот код:

private static string CHAR_REPLACE_SRC = "áàãâÁÀÃÂéèêÉÈEíìîÍÌÎóòõôÓÒÕÔúùûÚÙÛçÇñÑ";
private static string CHAR_REPLACE_DST = "aaaaAAAAeeeEEEiiiIIIooooOOOOuuuUUUccnN";


private static string GetCleanString (string src)
{
    int i = 0;
    while (i < src.Length)
    {
        if (src[i] < 32 || src[i] > 127)
        {
            int pos = CHAR_REPLACE_SRC.IndexOf(src[i]);
            if (pos >= 0)
                src = src.Replace(CHAR_REPLACE_SRC[pos], CHAR_REPLACE_DST[pos]);
            else
                src = src.Remove(i, 1);
        }
        else
            i++;
    }
    return src.Replace("\"", "").Replace("?", "").Replace(":", "").Replace("&", "_").Replace("\\", "_").Replace("/", "_");
}

Вам, вероятно, нужно будет сделать некоторые изменения. Я использую это для создания чистого URL из заголовка страницы.

0 голосов
/ 05 мая 2010

Я нашел решение, чтобы узнать кодировку файла.

Прочитайте следующую ссылку:

http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=469

...