С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
22 / 22 / 1
Регистрация: 17.07.2011
Сообщений: 53

Проблема с кодированием

17.07.2011, 02:15. Показов 1714. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, появилась поблема при выполнении цикла: добавление строк в файл-> сохранение и отправка файлов на FTP-> скачивание файла -> проверка равенства строки в файле с той что находится в клиенте.
Предположительно это из-за разной кодировки, т.к. если зайти через обычный FTP клиент, открыть через notepad++(он при открытии меняет кодировку текста) файл и сохранить\перезалить файл, то проверка проходит. Если через мою программу, то нет.
Так вот как можно свести к работе в одной кодировке две программы?

Программа записывающая данные:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//тут загрузка файла с FTP
        private void button4_Click(object sender, EventArgs e)
        {
            //Сам клиент ФТП
            FtpClient client = new FtpClient();
 
            //Задаём параметры клиента.
            client.PassiveMode = true; //Включаем пассивный режим.
            int TimeoutFTP = 30000; //Таймаут.
            string FTP_SERVER = "Хост";
            int FTP_PORT = 21;
            string FTP_USER = "Логин";
            string FTP_PASSWORD = "Пароль";
            client.Connect(TimeoutFTP, FTP_SERVER, FTP_PORT);//подключение
            client.Login(TimeoutFTP, FTP_USER, FTP_PASSWORD);//авторизация
 
            var lines = System.IO.File.ReadAllLines("D:/new/db.php"); System.IO.File.WriteAllLines("D:/new/db.php", lines.Take(lines.Length - 1).ToArray()); //удаление последней строки
 
            StreamWriter sw;
            FileInfo fi = new FileInfo("D:/new/db.php");
            sw = fi.AppendText();
 
            sw.WriteLine(textBox2.Text + "|" + textBox1.Text);//запись нужной информации
            sw.Write("");
            sw.WriteLine("?>");//востановление последней строки
            sw.Close();
 
 
 
            client.PutFile(TimeoutFTP, "WWW/db.php", "D:/new/db.php");//загрузка файла на сервер
            client.Disconnect(TimeoutFTP);// отключение от сервера
            fi.Delete();//удаление этого файла
        }
    }
Код следущей программы не мой поэтому не могу ее расписать
Программа которая сравнивает данные:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  private void button1_Click(object sender, EventArgs e)
        {
            String password = "log=Qyuin@n&pas=DanWtV@";//авторизация на странице
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://хост/login.php");//открытие страницы в которой указана ссылка на скачивание
            request.UserAgent = "Opera/9.80";
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded"; 
            byte[] EncodedPostParams = Encoding.ASCII.GetBytes(password);
            request.ContentLength = EncodedPostParams.Length;
            request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
            request.GetRequestStream().Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string html = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("windows-1251")).ReadToEnd();
            string[] stringSeparators = new string[] { "\n" };
            string[] result = html.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
 
            string PolucheniiNomer = "";
 
            foreach (string stroka in result)
            {
                if (stroka.IndexOf(textBox2.Text) != -1)
                {
                    string[] NashaStroka = stroka.ToString().Split((Convert.ToChar("|")));
 
                    string reLoL0 = (Crypt(NashaStroka[1].ToString()));
                    PolucheniiNomer = reLoL0.ToString();
 
                }
            }
 
            string HoldingAdress = "";
            try
            {
                string drive = Environment.GetFolderPath(Environment.SpecialFolder.System).Substring(0, 1);
                ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");
                disk.Get();
                string diskLetter = (disk["VolumeSerialNumber"].ToString());
                HoldingAdress = diskLetter;
 
            }
            catch (Exception)
            {
                MessageBox.Show("Critical error, application automatically exit", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
 
 
 
            if (PolucheniiNomer == HoldingAdress)
            {
                MessageBox.Show("Loging Succefull!");
            }
            else
            {
                MessageBox.Show("Loging Fail!");
            }
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2011, 02:15
Ответы с готовыми решениями:

Генерация html ответа с gzip кодированием
Приветствую, собственно сабж. Не получается никак сделать ответ с текстом сжатым gzip'ом.

Основы работы с кодированием и декодированием информации и с Windows Forms
здарвсвуйте,я воообще пока ноль в виндоус форм надо сделать курсовую на Тему кодирование декодирование информации помогите начинающему чё...

Теория кодирования: какая разница между кодированием и L-кодированием?
какая разница между кодированием и L-кодированием?

5
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
17.07.2011, 14:55
попробуй заменить

C#
1
2
3
StreamWriter sw;
FileInfo fi = new FileInfo("D:/new/db.php");
sw = fi.AppendText();
на

C#
1
StreamWriter sw = new StreamWriter("D:/new/db.php",true,Encoding.GetEncoding(1251));
1
22 / 22 / 1
Регистрация: 17.07.2011
Сообщений: 53
17.07.2011, 17:09  [ТС]
К сожалению не помогло
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
17.07.2011, 17:48
Цитата Сообщение от nexttttt Посмотреть сообщение
К сожалению не помогло
посмотри, как выглядит передаваемый файл
C#
1
2
3
4
5
  sw.WriteLine("?>");//востановление последней строки
            sw.Close();
using(StreamReader sr = new StreamReader("D:/new/db.php",Encoding.GetEncoding(1251))){
                Console.Write("send > "+sr.ReadToEnd());
            }
и как он считывается (во второй части)
C#
1
2
 string html = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("windows-1251")).ReadToEnd();
Console.Write("recieve > "+html);
1
22 / 22 / 1
Регистрация: 17.07.2011
Сообщений: 53
19.07.2011, 22:50  [ТС]
Спасибо за ответы, но решил пока что забросить эту идею, вторая программа используется лишь как отладчик, когда напишу основную, вот тогда и задумаюсь
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
19.07.2011, 23:08
Да ради бога)
Просто помни, что кодировка нигде не хранится и не передается. Это просто формат записи данных (то, какая последовательность бит каким символам соответствует). Поэтому проблемы могут возникнуть только тогда, когда данные сохраняются одним образом (кодировкой), а читаются другим.
А раз так, то нужно:
1. выбрать кодировку (кстати, ну нафиг эту 1251, если не критично используй UTF8)
2. проверить, читается ли в этой кодировке файл до отправки (вдруг его разные части были записаны в разной кодировке)
3. проверить, что именно в этой кодировке считываются файлы на принимающей стороне.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2011, 23:08
Помогаю со студенческими работами здесь

Проблема с кодированием/декодированием текста
Всем привет! Встала задача кодировать и декодировать обратно в то же состояние текст. На одном сайте нашел такую функцию: function...

СМА Bosch WAS24443OE/14, Проблема с кодированием
Машина поступила в ремонт с ошибкой F34. Блокировка быстрая. Проверил, подкинув новый замок. Вошёл в режим кодирования, но не могу поменять...

Архивация групповым кодированием
Здравствуйте форумчане. Сразу говорю, я не прошу за меня писать программу. На первом курсе когда был-наступил на эти грабли. Сейчас на...

Трабла с кодированием строки
Вроде сделал верно, но "Your answer is Wrong" Sub Encode() Dim doc As Document Dim i As Long, j As Long, n As Long, m As...

проблема при работе с китайским J-LINK 8 или же проблема с с
Всем привет. Решил Сам собрать себе дисковери кит на базе at91sam7s64-ek. Подарили мне китайский J-Link 8 c прошивкой 3.20. Недолго...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru