Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
#1

Определение кодировки richtextbox - C#

22.11.2011, 19:30. Просмотров 2205. Ответов 10
Метки нет (Все метки)

Народ возникла такая проблема. У меня на форме есть 2 richtextbox. Текст и richtextbox2 я сохраняю в текстовый файл .txt. Но вся проблема в том, что кодировку не удаеться сохранить, то есть если в richtextbox2 текст "зyl" то в сохраненном файле "§yl". Вопрос как получить (или просто узнать) кодировку richtextbox2 и в ней сохранить текст? Вот код окна сохранения:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button4_Click(object sender, EventArgs e)
        {
            string filename = "AS";
            
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.FileName = "Document"; 
            dlg.DefaultExt = ".txt"; 
            dlg.Filter = "Text documents (.txt)|*.txt"; 
                       
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                filename = dlg.FileName;
            }
            string s;
            
            s = richTextBox2.Text.ToString();
            File.WriteAllText(filename, s,Encoding.Default);
            
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 19:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение кодировки richtextbox (C#):

Определение кодировки в строке и преобразование ее в UTF-8 - C#
С помощью этого куска кода я получаю html страницы и записываю как обычную строку в response. Внутри этого кода я регулярными выражениями...

Определение кодировки текста - C#
Здраствуйте,В textboxe multiline eсть текст, как вывести строку, которая удовлетворяет нужной кодировке?

.NET 4.x Определение кодировки файла - C#
Помогите определить кодировку файла(файл текстовый). Имеется набор файлов в различной кодировке, проблема в том что при отображении...

.NET 3.x Определение кодировки строки - C#
Делаю программу, суть которой в отправке и получении смс. Столкнулся с такой проблемой: как сделать так, что бы в зависимости от текста...

Умное определение кодировки - C#
Хочется, чтобы кодировка выбранного пользователем файла определялась автоматически, как это делает сам Windows в окошке предварительного...

.NET 4.x Правильное получение Html кода страницы и определение ее кодировки в одном запросе - C#
Здравствуйте, Сегодня решил снова поднять вопрос о работе с интернет страницами. Я знаю, что в интернете полно ответов на вопрос о том,...

10
Moonlight#
107 / 107 / 8
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 20:26 #2
может вот так лучше сохранять?
C#
1
 richTextBox2.SaveFile("Путь", RichTextBoxStreamType.PlainText);
1
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 20:48  [ТС] #3
Спасибо, так действительно удобнее. Можно тогда еще 1 вопрос по открытию файла. Вот мой код по открытию файла
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void button2_Click(object sender, EventArgs e)
        {
            string filename = "AS";
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.FileName = "Document"; // Default file name
            dlg.DefaultExt = ".txt"; // Default file extension
            dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension
 
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                          filename = dlg.FileName;
            }
            
            string[] lines = File.ReadAllLines(filename, Encoding.Default);
            foreach (string s in lines)
            {
                richTextBox1.Text = richTextBox1.Text + s ;
                richTextBox1.Text = richTextBox1.Text + "\n";
                
            }
        }
Но из-за /n (его я написал для сохранения абзацев в тексте) у меня курсор на новой строке с пробелом, то есть если в файле текст:
111
То при выводе его в текстбокс получается:
111

То есть создаеться новая строка с пробелом. Это можно как-то исправить? Этот пробел очень мешает))
0
Moonlight#
107 / 107 / 8
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 21:01 #4
если я вас правильно понял, вам нужно что бы после последней строки не выводилась пустая строка?

Добавлено через 7 минут
если я что то не до понял, поточнее сформулируйте вопрос...
0
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 21:04  [ТС] #5
Да. Хотя потестив еще Ваш код нашел, что он не все символы нормально сохраняет:
Была строка "зyl`╫*y╙N╚<9ь>"
Сохранило же "зyl`?*y?N?<9ь>"
Вместо  должны отображаться стрелочки влево и вправо (это сам сайт не хочет отображать).
То есть проблема осталась, не все символы кодируються
0
Moonlight#
107 / 107 / 8
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 21:24 #6
Цитата Сообщение от Johny be Good Посмотреть сообщение
То есть проблема осталась, не все символы кодируються
вот так попробуй
C#
1
richTextBox1.SaveFile("путь", RichTextBoxStreamType.UnicodePlainText); //юникод
1
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 21:43  [ТС] #7
Все работает спасибо. Правда вопрос остаеться. В конце текста появляеться пустой символ(пробел) Если считка из файла
0
Moonlight#
107 / 107 / 8
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 21:49 #8
попробуй так..
C#
1
string[] lines = System.IO.File.ReadAllLines("путь", Encoding.Unicode);
0
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 21:51  [ТС] #9
У меня так и стоит. Проблема не в кодировке а в /n
C#
1
2
3
4
5
6
7
string[] lines = File.ReadAllLines(filename, Encoding.Unicode);
            foreach (string s in lines)
            {
                richTextBox1.Text = richTextBox1.Text + s ;
                richTextBox1.Text = richTextBox1.Text + "\n";
                
            }
0
Moonlight#
107 / 107 / 8
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 21:58 #10
C#
1
richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 2); //удаляет последний символ, в вашем случае "\n"
0
Johny be Good
5 / 5 / 0
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 22:08  [ТС] #11
И снова Спасибо)
Вот только я теперь решил другой файл с текстом(который просто создан на компе):
Hello!!!
Привет111
Но из-за того что считывает в юникоде получил:
效汬Ⅿ℡਍Ïㄱ
Как это исправить? нужно чтобы считывало файлы которые я создавал, и которые сохранены из проги
0
22.11.2011, 22:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 22:08
Привет! Вот еще темы с ответами:

кодировки - C#
здравствуйте! помогите решить такую задачу- желательно кодом есть массив байтов содержащий текст в кодировке utf7, нужно его...

кодировки - C#
Мне надо сохранять данные в txt желательно чтобы блокнотом не открывалось а другой программой открывалось. Шифровать не хочу и не...

Кодировки - C#
Доброе время суток. Я делаю RSS aggregator. Как входные данные, на него подаются url feeds, я их разбиваю на разные части(title,...

Преобразование кодировки - C#
Получаю код с HTML страницы, а русский текст там такой: РЇСЃРЅРѕ Как преобразовать в нормальный? Вообще там должен быть такой: Ясно ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru