считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра. При этом вещественные значения в sX, sY и sZ считываются правильно.
В чём причина этого? Как исправить эту ошибку?
1613 г. = 2024 г.
Re: Проблема со считыванием русских символов из текстового файла
Здравствуйте, RussianFellow, Вы писали:
RF>считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра. При этом вещественные значения в sX, sY и sZ считываются правильно.
RF>В чём причина этого? Как исправить эту ошибку?
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, RussianFellow, Вы писали:
RF>>считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра. При этом вещественные значения в sX, sY и sZ считываются правильно.
RF>>В чём причина этого? Как исправить эту ошибку?
M>Почитай что-нибудь про кодировки текста
И что? Какую кодировку текстового файла мне надо поставить — ANSI, UTF-8 или какую-то другую?
1613 г. = 2024 г.
Re[3]: Проблема со считыванием русских символов из текстового файла
Здравствуйте, RussianFellow, Вы писали:
RF>>>считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра. При этом вещественные значения в sX, sY и sZ считываются правильно.
RF>>>В чём причина этого? Как исправить эту ошибку?
M>>Почитай что-нибудь про кодировки текста
RF>И что? Какую кодировку текстового файла мне надо поставить — ANSI, UTF-8 или какую-то другую?
Это зависит от того, какая абракадабра. Опытный разработчик по виду абракадабры безошибочно угадывает кодировку. Менее опытный открывает файл в какой-нибудь программе, которая сама умеет определять кодировку, например Notepad++, и смотрит, какая определилась. Джун перебирает все известные кодировки, и смотрит, когда начнёт отображаться правильно. Тебе, я думаю, достаточно попробовать OEM (cp866) и ANSI (cp1251). Был бы UTF-8 — скорее всего, заработало бы сразу (если ты потом в кути закидываешь).
RF>>И что? Какую кодировку текстового файла мне надо поставить — ANSI, UTF-8 или какую-то другую? M>Это зависит от того, какая абракадабра. Опытный разработчик по виду абракадабры безошибочно угадывает кодировку. Менее опытный открывает файл в какой-нибудь программе, которая сама умеет определять кодировку, например Notepad++, и смотрит, какая определилась. Джун перебирает все известные кодировки, и смотрит, когда начнёт отображаться правильно. Тебе, я думаю, достаточно попробовать OEM (cp866) и ANSI (cp1251). Был бы UTF-8 — скорее всего, заработало бы сразу (если ты потом в кути закидываешь).
Еще вопрос, как именно он результат смотрит.
Если в консоли, то нужно для вывода в кодировку консоли переводить -- на русской винде там обычно 866, когда в системе 1251.
Re[5]: Проблема со считыванием русских символов из текстового файла
Здравствуйте, K13, Вы писали:
K13>Еще вопрос, как именно он результат смотрит. K13>Если в консоли, то нужно для вывода в кодировку консоли переводить -- на русской винде там обычно 866, когда в системе 1251.
Здравствуйте, Marty, Вы писали:
M>Это зависит от того, какая абракадабра. Опытный разработчик по виду абракадабры безошибочно угадывает кодировку. Менее опытный открывает файл в какой-нибудь программе, которая сама умеет определять кодировку, например Notepad++, и смотрит, какая определилась. Джун перебирает все известные кодировки, и смотрит, когда начнёт отображаться правильно. Тебе, я думаю, достаточно попробовать OEM (cp866) и ANSI (cp1251). Был бы UTF-8 — скорее всего, заработало бы сразу (если ты потом в кути закидываешь).
Если при просмотре в Блокноте (Notepad) указана кодировка ANSI, то какой функцией перекодирования мне нужно пользоваться?
1613 г. = 2024 г.
Re[5]: Проблема со считыванием русских символов из текстового файла
Здравствуйте, RussianFellow, Вы писали:
M>>Это зависит от того, какая абракадабра. Опытный разработчик по виду абракадабры безошибочно угадывает кодировку. Менее опытный открывает файл в какой-нибудь программе, которая сама умеет определять кодировку, например Notepad++, и смотрит, какая определилась. Джун перебирает все известные кодировки, и смотрит, когда начнёт отображаться правильно. Тебе, я думаю, достаточно попробовать OEM (cp866) и ANSI (cp1251). Был бы UTF-8 — скорее всего, заработало бы сразу (если ты потом в кути закидываешь).
RF>Если при просмотре в Блокноте (Notepad) указана кодировка ANSI, то какой функцией перекодирования мне нужно пользоваться?
Любой доступной. Я понятия не имею, как ты отображаешь то, что прочитал
RussianFellow:
RF>Если при просмотре в Блокноте (Notepad) указана кодировка ANSI, то какой функцией перекодирования мне нужно пользоваться?
Тебе же сказали notepad++. Простой notepad не умеет менять кодировку.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: Проблема со считыванием русских символов из текстового ф
Здравствуйте, RussianFellow, Вы писали: RF>считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра.
Где смотришь эту абракадабру? В watch QT Designer?
Если у тебя файл в ANSI aka Windows cp1251, а нужно utf-8, то в винде надо конвертировать через WCHAR.
Сначала MultiByteToWideChar с CP_ACP (или явно 1251), а потом WideCharToMultiByte с CP_UTF8.
Здравствуйте, qaz77, Вы писали:
Q>Где смотришь эту абракадабру? В watch QT Designer? Q>Если у тебя файл в ANSI aka Windows cp1251, а нужно utf-8, то в винде надо конвертировать через WCHAR. Q>Сначала MultiByteToWideChar с CP_ACP (или явно 1251), а потом WideCharToMultiByte с CP_UTF8.
Если он использует Qt, то нафига виндовые функции? У QString есть что-то типа fromAnsi или какк-то так
Это только на твоём компе. А если по умолчанию в операционке будет другая локаль, то тебя ждёт очередной облом. В очередной раз совет — начни с фундаментальных основ, разберись в теме, вместо поиска готового кода который на время затыкает твой текущий вопрос.
Re[2]: Проблема со считыванием русских символов из текстового файла
Честно говоря, какая-то мешанина: бессмысленно используются вперемешку три типа строк из разных библиотек ("сырые" char, std::string и QString). Вы похожи на не очень шарящего студента, которому лишь бы закрыть лабу — надергал у сокурсников всякий код, слепил кое-как все вместе, подобрал работающую комбинацию, и оно как-то работает. Похоже, вы не понимаете в-принципе, что вы делаете в этом коде.