powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Надо получить текст.файл 866 кодировки
13 сообщений из 13, страница 1 из 1
Надо получить текст.файл 866 кодировки
    #32104317
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема такая.Средствами FORMSа я получаю текстовый файл кодировки 1251.Как средствами FORMSа поменять кодировку на 866?
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32104348
Les
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой способ: набей полный набор букв в досе (866) в обоих регистрах и например в блокноте. А потом используй translate
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32104358
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.Дайте более подробную инструкцию для начинающих,если не трудно.
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32104520
Les
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select translate(s,
'йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ',
'©жгЄҐ­Јий§екдлў Їа®«¤¦нпзб¬ЁвмЎо‰–“Љ…Ќѓ˜™‡•љ”›‚ЂЏђЋ‹„†ќџ—‘Њ€’њЃћ' ) into s_r from dual;
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32104541
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Les, зачем-же так извращаться. Для конвертации текста из одной кодировки в другую есть специальная функция CONVERT: из 1251 в 866:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT CONVERT('Русский', 'CL8MSWIN1251', 'RU8PC866')  FROM DUAL;

SQLWKS> SELECT CONVERT('Русский', 'CL8MSWIN1251', 'RU8PC866')  FROM DUAL;
CONVERT
 -------
 
?єёёъшщ
Выбрана  1  строка.


Почти получается, буквы верхнего регистра только с ошибкой(конвертирует в ?)

Но я так понимаю, надо именно в Forms и не просто данные, а файл.
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105521
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После функции convert получила текст с иероглифами,отличными от предыдущих.То есть convert отработал,но результат неуд.
Может нужно менять какие-то системные настройки?
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105535
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит "отличными от предыдущих" ?

Ты получил в кодировке 866
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105666
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отличными от предыдущих означает,что символы текстовых полей,полученных с convert отличаются по внешнему виду от символов,полученных без convert.
Но я сомневаюсь,что это 866 кодировка.Русского текста я не вижу ни нортоном,ни вордом,ни фоксом досовским.А файл,полученный без convert,я откраваю вордом,сохраняю в текст дос и все ок,вижу нортоном русский текст,банковская программа принимает данные без сбоев.Но пользователю программы так работать будет неудобно.Вот такая эпидерсия...
Кстати,как можно точно узнать кодировку текстового файла и какими средствами?
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105675
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кинь сюда кусок полученного текста
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105686
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
текст без convert:
20623303510002980 328209 АБ "ПIВДЕННИЙ" М.ОДЕСА 26005311127980 13920723 ООО "Стимпекс"8041001 1100 132000000 1302200313022003 согласно счета №Счт-16100 часть 1 от 04.02.2003г. в.т.ч. ндс 1.83 3 0 0
с convert:
20623303510002980 328209 рс "яiтфхээшщ" ь.юфхёр 26005311127980 13920723 ююю "ёЄшьяхъё"8041001 1100 142000000 1302200313022003 ёюуырёэю ёўхЄр ??ўЄ-16100 ўрёЄ№ 1 юЄ 04.02.2003у. т.Є.ў. эфё 1.83 3 0 0
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105746
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял в чём твоя ошибка. Когда ты в wordpade созраняешь как MSDOS - он считает что исходная информация в 1251 и делает конвертацию текста 866 в 866 - что неверно.

А конвертация с помощью CONVERT происходит правильно. Можешь её конвертнуть в обратную сторону и ты увидишь, что всё нормально.
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105766
Фотография Serenada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно.Но НОРТОНом я тоже вижу
20623303510002980 328209 рс "яiтфхээшщ" ь.юфхёр 26005311127980 13920723 ююю "ёЄшьяхъё"8041001 1100 142000000 1302200313022003 ёюуырёэю ёўхЄр ??ўЄ-16100 ўрёЄ№ 1 юЄ 04.02.2003у. т.Є.ў. эфё 1.83 3 0 0
...
Рейтинг: 0 / 0
Надо получить текст.файл 866 кодировки
    #32105796
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это тоже самое. Это зависит от того в какой программе ты получаешь результат. Тебе нужно запрос сделть в консольной программе, например sqlplus или svrmgrl и сделать вывод результата в файл. Вот тогда ты увидишь в нортоне и wordpad as dos - уже так как надо.

Код: plaintext
1.
2.
3.
spool dos.txt
select CONVERT(<field>,'CL8MSWIN1251','RU8PC866') from dual;
spool off;
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Надо получить текст.файл 866 кодировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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