powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinToDos - ну ни как не получается ...
7 сообщений из 7, страница 1 из 1
WinToDos - ну ни как не получается ...
    #38176249
tahiondb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо перевести текст: Кириллицу Win в Кириллицу DOS
Как я понял в .NET нет такой возможности ?

П.С.
Класс Encoding - уже узал:
Encoding - класс
Из Доса в Вин проблем, а вот наоборот, да ещё и кириллицу - получаю иероглифы:

WIN(Тахион) = DOS(╥рїшюэ)
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38176381
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tahiondb,
Покажи как делаешь и как читаешь\проверяешь.
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38176394
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tahiondb, можно, но надо помнить что экземпляр string всегда хранится в UTF-16. Поэтому преобразование в памяти возможно только в массив байтов. Выложи пример кода где это не работает.
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38177032
tahiondb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВ Покажи как делаешь
Например так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        public Encoding dos = Encoding.GetEncoding(866);
        public Encoding win = Encoding.GetEncoding(1251);
        public Encoding ascii = Encoding.ASCII;
        public string DosToWin(string s)
        {
            return win.GetString(dos.GetBytes(s));
        }
        public string WinToDos(string s)
        {
            return dos.GetString(win.GetBytes(s));
        }



Или так:
(здесь подставляю разные кодировки)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        public static string ConvertEncoding(string value, Encoding src, Encoding trg)
        {
            Decoder dec = src.GetDecoder();
            byte[] ba = trg.GetBytes(value);
            int len = dec.GetCharCount(ba, 0, ba.Length);
            char[] ca = new char[len];
            dec.GetChars(ba, 0, ba.Length, ca, 0);
            return new string(ca);
        }



Ну и записать в файл, например так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
            using (FileStream fs = new FileStream(FileName, FileMode.Create, FileAccess.Write))
            {
                using (StreamWriter sw = new StreamWriter(fs, Encoding.Default)) //Encoding.XXX
                {
                    sw.WriteLine(_data);
                }
            }



П.С. Перепробывал разное "Encoding".
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38177037
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tahiondbstring всегда содержит UTF8. Преобразовывать кодировку можно только между byte[] и string. Делаем выводы.
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38177088
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tahiondb, строка хранится памяти в одной и той же кодировке - UTF-16. Можно получить массив байтов который соответствует определенной кодировке:

Код: c#
1.
2.
3.
4.
5.
string input = "";
Encoding dos = Encoding.GetEncoding(866);
Encoding win1251 = Encoding.GetEncoding("windows-1251");
byte[] dosBytes = Encoding.Convert(win1251, dos, win1251.GetBytes(input));
byte[] win1251Bytes = Encoding.Convert(dos, win1251, dos.GetBytes(input));



Или можно записать текст в определенной кодировке:
Код: c#
1.
2.
File.WriteAllText(@"c:\dos.txt", "Test\nПроверка", Encoding.GetEncoding(866));
File.WriteAllText(@"c:\win1251.txt", "Test\nПроверка", Encoding.GetEncoding(1251));
...
Рейтинг: 0 / 0
WinToDos - ну ни как не получается ...
    #38177280
tahiondb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile
Сенкью, всё работает.

Вторая задачка стояла выгрузить данные в ДБФ dBase(3-4) в дос-кодировке ... пока пробую ...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinToDos - ну ни как не получается ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]