![]() |
|
![]() ![]() ![]() |
|
Aleksiy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
Ни как не могу понять почему не отображается текст в кириллице
|
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
А так?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Aleksiy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
И так тоже не работает
|
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
так тоже работает. -------------------- Мне нужны помощники. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Aleksiy, в какой кодировке у тебя исходный файл? Без кодека пробовал? И какая операционка?
Это сообщение отредактировал(а) bsa - 23.1.2008, 12:02 |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
Для Aleksiy. У тебя файл не в той что нужно кодировке. -------------------- Мне нужны помощники. |
|||
|
||||
SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Дело не в файле, а именно в строке. Проблема заключается в том, что если исходник сохранить скажем в Utf-8, то gcc такой файл не воспримет, т.ч. все исходники должны быть в обычной досовской кодировке (байты 0-255). Далее, в зависимости от винды и программы, при редактировании исходников русский текст может сохраняться как cp1251 или utf-8, при этом весь остальной текст, обычно английский, будет выглядеть во всех кодировках одинаково. Таким образом, чтобы выбрать кодек, надо четко знать в какой кодировке писался русский текст в момент редактирования исходников. Но я не думаю, что это правильное решение, поэтому лично сам пишу сначала все по-английски, а потом через .ts файлы перевожу в русский текст, а в зависимости от локали выбирается перевод:
А еще глянь в сторону: QString::fromLocal8Bit(const char *str) Это сообщение отредактировал(а) SABROG - 23.1.2008, 12:56 |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Да что ты? По жизни сохраняю все, компилируемое в gcc, в utf8. Ты не путай utf8 и utf16. ![]() |
|||
|
||||
SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Я говорю про gcc, который именно в MinGW. Специально для тебя взял исходник действующей программы и в emeditor'e сохранил его из кодировки windows-1251 в кодировку utf-8 (без добавления сигнатуры, перевод кареток виндосовский CR+LF), вот что из этого вышло:
|
||||||
|
|||||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
Ладно, отложим вопрос об умении gcc воспринимать utf-8 исходники. Я немного не понимаю другого:
Тебя не напрягают эти ньюансы? Ещё теоретически есть "маленькая" проблема с выводом таких строк в поток(но, ничего конкретно сказать не могу). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
При работе с регулярными выражениями из-за кодировки сразу начнутся косяки. |
||||
|
|||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
|
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
bsa, я ещё раз спрошу: тебя не напрягает то, что символ начинает представлять из себя неопределённое количество байт? (IIRC, от 1 до 6)
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
archimed7592, что такое utf8 и чем грозит str[3] я прекрасно знаю. Поэтому никогда str[3] не делаю (если очень понадобится, то переведу в utf32). Да и на char c = 'Г'; компилятор выдаст warning.
Это сообщение отредактировал(а) bsa - 23.1.2008, 13:33 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
bsa, если знаешь, то в чём тогда сакраментальный смысл использования utf8? Намного выгоднее использовать utf16 или, для особо параноиков - utf32, а, когда необходимо отдавать текстовую информацию "наружу"(файл, консоль, сервер и т.п.), перекодировать в utf-8. К примеру, фреймворки Qt и .NET оба работают именно так, а их проектировали вовсе не дураки. Не даром в Стандарт собираются добавить поддержку utf16/32, но не собираются добавлять поддержки utf8.
Тут играет роль не только аспект производительности, но обыкновенная логика: зачем делать лишние действия, которых можно просто не делать(я про действия, которые программист должен делать явно и руками). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |