|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
Греческий в консоли14.10.2014, 13:13. Показов 17102. Ответов 46
Метки нет (Все метки)
Приветствую всех!
Реализовываю некоторое подобие переводчика (крайне примитивный вариант). Удалось настроить русский язык, но как сделать корректным вывод греческого языка в консоль? Так называемый "словарь" в виде обычного текстового документа содержит в себе греческие слова; в консоли все имеет вид "???". Написала код с использованием stl, но, погуглив, натолкнулась на утверждение, что с stl вывести греческий не получится, нужно использовать библиотеку Qt. Кто-нибудь сталкивался с подобным? Заранее благодарна за помощь.
0
|
|
| 14.10.2014, 13:13 | |
|
Ответы с готовыми решениями:
46
Не получается греческий греческий алфавит Эрастофен, греческий философ |
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 14.10.2014, 22:59 [ТС] | |
|
Да, все-таки не получается.
Файл сохранила в UTF-16LE, добавила указанный Вами кусок кода (для настройки консоли), но вот разобраться с "w" мне, видимо, не дано. Не просила бы все так разжевывать, если бы у меня было время. Алгоритмы, присущие обычным строкам (find, replace, length) не будут работать с "w"? Тот факт, что у меня еще есть обычные строки (окончания), которые добавляются в процессе, вызовет противоречие? А то, что мы считываем запрашиваемое к переводу слово - будет ли играть роль, что у нас просто строки? Заранее прощу прощения, если спрашиваю очевидные вещи. Правда нет времени обстоятельно во всем разбираться.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 14.10.2014, 23:16 | ||||
|
Добавлено через 2 минуты
1
|
||||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|||||||||||
| 15.10.2014, 00:09 [ТС] | |||||||||||
|
Когда я читала свой "словарь" построчно, то лат-англ-рус-греч слова этой строки "распихивались по векторам:
И сразу еще один вопрос: у меня происходило считывание пользовательской строки, затем создание некоторого массива (то, что программа в итоге должна была перевести):
Добавлено через 21 минуту Второе - ерунда, достаточно написать wistringstream. Но вот первое..
0
|
|||||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||
| 15.10.2014, 00:53 | ||||||
|
Что-то я совсем забыл, что в виндовс так и не сделали нормальную поддержку локалей.
Ну да ладно, в общем вот я написал тут небольшую рыбу:
1
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 15.10.2014, 00:56 | |||||||
|
Или можно вот так (весь файл читаем в вектор):
1
|
|||||||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
||||||
| 15.10.2014, 08:09 [ТС] | ||||||
|
У Вас очень красивая рыба получилась
Только вот не стану я сдавать того, что сама не напишу ближайшие лет 5 ![]() Наконец-то у меня перестали вылезать ругаки, но программа все равно не работает корректно (наверно, из-за этих самых локалей в windows). Я благодарю Вас за помощь. Не ожидала встретить такую доброжелательность. Спасибо Вам за терпение, за потраченное время и готовность помогать) С такими учителями пропадает ощущение безысходности от непонимания материала. Добавлено через 6 часов 38 минут А можно я Вас ещё немножко помучаю?) Корректного вывода в консоль всё равно нет. Даже если "словарь" "зашит" в саму программу. Русский и греческий упорно отказываются выводиться вообще. А если добавляю вот эту строку:
Если прошу считать с файла, то распихивается все по векторам опять же некорректно. Но зато русский и греческий хоть как-то отображаются (кракозябрами). Работа самого словаря также прекратилась. Если раньше он мне хоть что-то переводил, то теперь не хочет. Добавлено через 8 минут Магия! Если сохраняю док-т в UTF-8, распихивается все по векторам корректно, русский и греческий также не выводятся, но словарь работает как полагается с англ. и лат.? Ну и как тут не удивиться? Уровень вопросов "почему" зашкаливает!
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 15.10.2014, 08:33 | ||||
![]() Я так скажу, лично мне неизвестен другой способ (т.е. кроме того, что я привел выше) заставить работать этот код без явной перекодировки строк. Поэтому предлагаю еще раз посмотреть на пост выше
1
|
||||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 08:41 [ТС] | |
|
Ваш код я пыталась разобрать, и теперь, после небольшого сёрфа, более или менее представляю о чем Вы.
Самая первая проблема, которая выскакивает - #include <codecvt> no such file(...) Эта библиотека сторонняя? И не по теме: ребята говорят, самые простые примеры с кодировками, которые мне даже не удается у себя запустить, прекрасно работают в linux. Что такие проблемы-то с windows? Что ж все через.. Пример чего? Вывода или моей программы?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 15.10.2014, 08:47 | |||
|
Версия компилятора у вас какая? Добавлено через 1 минуту
0
|
|||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 08:48 [ТС] | |
|
Qt Creator 3.2.0 (enterprise). Полагаю, плохая)
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 15.10.2014, 08:54 | |||
|
Добавлено через 4 минуты ![]() А компилятор на борту у нее какой? MinGW?
0
|
|||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
||||||
| 15.10.2014, 08:56 [ТС] | ||||||
|
Нужен, он обеспечивает работу Ваших виртуальных функций.
Считывание с файла -> распихивание по векторам -> ну а там просто итератором проходим и выводим
Он самый на борту, капитан
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 15.10.2014, 09:03 | |||
1
|
|||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 09:15 [ТС] | |
|
Да, если закомментить, не компилируется. 'result' doesn't name a type
О, Вы правы, кодировка стояла UTF-8. Но я успела поиграться с ними: если поставить UTF-16, то мой код чудесным образом выглядит иероглифами. Не хотела выкладывать код, но по фотографии лечить и правда сложно Не знаю, как поставить скролл, так что вот ссылка http://codepaste.ru/18153/ Реализовано опять же с некоторым подобием окончания
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||
| 15.10.2014, 09:31 | |||||||||
|
Добавлено через 5 минут
2
|
|||||||||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 09:34 [ТС] | |
|
Ваш код: документ в UTF-16 LE, сам код в UTF-8. Все так? Единственное, что получаю в консоль, - R
Как и у меня, только первая буква первой выводимой фразы
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 15.10.2014, 09:37 | |||
2
|
|||
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 10:01 [ТС] | |
|
Ни в чем Вашей вины уж точно нет. Спасибо за то, что вообще занимаетесь этим и не бросаете.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 15.10.2014, 11:24 | |
|
Pumie, в общем проблема ясна, MinGW не может правильно выставить режим для консоли, т.к. не поддерживает по-умолчанию msvcr80 (эта возможность появилась начиная с этой версии). Поэтому указанный способ в нем не заработает.
Выходов несколько: 1) Использовать VS Express (она бесплатная и там все работает); 2) Реализовать на MinGW, с перекодировкой в UTF-8 (SetConsoleOutputCP(65001) должен работать нормально, + в С++11 есть facet`ы для работы с utf8 (см тут); 3) Научить mingw работать с msvcr80, вместо msvcrt. Инструкция здесь. 4) Использовать средства Qt для локализации приложения (в Qt QString - юникодная). Если до вечера ничего не разрешится, то попробую помочь с этим всем. Сейчас, увы, мне уже некогда. Добавлено через 10 минут Pumie, забыл добавить: нужно не забыть поменять шрифт в консоли на Lucida Console (без этого точно ничего не заработает, т.к. нужен шрифт поддерживающий юникод).
1
|
|
|
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36
|
|
| 15.10.2014, 12:53 [ТС] | |
|
1 вариант - попробую установить VS, только у меня она капризничает и устанавливаться не хочет.
Второй вариант требует подключения хедера codecvt, который у меня не подключается. 3 вариант возможен. 4 вариант - переписать лабу с использование библиотеки Qt - пробовала, ничего хорошего у меня не вышло. Stl хотя бы работает. Шрифт давно стоит такой ![]() Добавлено через 1 час 19 минут Сдать я сдала, но все-таки докопаться до истины я бы хотела.
0
|
|
| 15.10.2014, 12:53 | |
|
Запись и чтение из тектового файла иностранных языков(греческий, Немецкий и т.п.) Отобразить в консоли:увеличить и уменьшить длину массива на заданное ранее из консоли число Как запустить программу из консоли без блокировки консоли? Вызов консоли для другой вкладки из консоли js Клавиши F1-F12 в консоли, и работа с мышкой в консоли Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|