Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Johny be Good
5 / 5 / 3
Регистрация: 25.09.2010
Сообщений: 89
#1

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

22.11.2011, 19:30. Просмотров 2349. Ответов 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);
            
        }

http://www.cyberforum.ru/csharp-beginners/thread1623457.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 19:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определение кодировки richtextbox (C#):

Определение кодировки строки
Делаю программу, суть которой в отправке и получении смс. Столкнулся с такой...

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

Определение кодировки файла
Помогите определить кодировку файла(файл текстовый). Имеется набор файлов в...

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

Правильное получение Html кода страницы и определение ее кодировки в одном запросе
Здравствуйте, Сегодня решил снова поднять вопрос о работе с интернет...

10
Moonlight#
107 / 107 / 40
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 20:26 #2
может вот так лучше сохранять?
C#
1
 richTextBox2.SaveFile("Путь", RichTextBoxStreamType.PlainText);
1
Johny be Good
5 / 5 / 3
Регистрация: 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 / 40
Регистрация: 24.02.2011
Сообщений: 325
Завершенные тесты: 1
22.11.2011, 21:01 #4
если я вас правильно понял, вам нужно что бы после последней строки не выводилась пустая строка?

Добавлено через 7 минут
если я что то не до понял, поточнее сформулируйте вопрос...
0
Johny be Good
5 / 5 / 3
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 21:04  [ТС] #5
Да. Хотя потестив еще Ваш код нашел, что он не все символы нормально сохраняет:
Была строка "зyl`╫*y╙N╚<9ь>"
Сохранило же "зyl`?*y?N?<9ь>"
Вместо  должны отображаться стрелочки влево и вправо (это сам сайт не хочет отображать).
То есть проблема осталась, не все символы кодируються
0
Moonlight#
107 / 107 / 40
Регистрация: 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 / 3
Регистрация: 25.09.2010
Сообщений: 89
22.11.2011, 21:43  [ТС] #7
Все работает спасибо. Правда вопрос остаеться. В конце текста появляеться пустой символ(пробел) Если считка из файла
0
Moonlight#
107 / 107 / 40
Регистрация: 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 / 3
Регистрация: 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 / 40
Регистрация: 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 / 3
Регистрация: 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
Привет! Вот еще темы с решениями:

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

кодировки
Мне надо сохранять данные в txt желательно чтобы блокнотом не открывалось а...

Кодировки
Доброе время суток. Я делаю RSS aggregator. Как входные данные, на него...

Кодировки текста
Как определить текущую кодировку текста в компоненте TextBox ? И как её...


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

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

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