Russian Qt Forum
Ноябрь 24, 2024, 10:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: И снова QString в std::string (русский текст)  (Прочитано 14496 раз)
BRE
Гость
« Ответ #15 : Март 01, 2012, 10:08 »

2 реплики подряд - признак плохого воспитания, не? Показает язык
Не, это ответы на совершенно разные вопросы, почему они должны быть в одной реплике? Как ты себе это представляешь? Хочешь поговорить об этом?
Записан
Bepec
Гость
« Ответ #16 : Март 01, 2012, 10:15 »

2 поста подряд, так же как и цитата двухстраничного коммента - неуважение ко всем, кто читает.

Рабочий пример, даже без указывания кодеков (проверено на русской винде, иных не имею)
Код:
QString text = ui.lineEdit->text();
std::string j = text.toLocal8Bit ();

Записан
BRE
Гость
« Ответ #17 : Март 01, 2012, 10:37 »

2 поста подряд, так же как и цитата двухстраничного коммента - неуважение ко всем, кто читает.
Блин, даже не знаю что и делать теперь. Ты там как? Держись!

Рабочий пример, даже без указывания кодеков (проверено на русской винде, иных не имею)
А ты как проверял?
Записан
Bepec
Гость
« Ответ #18 : Март 01, 2012, 10:49 »

ёмоё. BRE на тропе войны Подмигивающий Весеннее обострение?

Проверял просто - запускал на машине под русской вендой Веселый
Записан
xTr1m
Гость
« Ответ #19 : Март 01, 2012, 10:50 »

Господа =), спасибо. Сработал такой совет:
Код:
std::string j = text.toLocal8Bit ();
но вопрос такой, а чем мне грозит такое явное приведение?
Записан
BRE
Гость
« Ответ #20 : Март 01, 2012, 11:26 »

ёмоё. BRE на тропе войны Подмигивающий Весеннее обострение?
Ты себе льстишь.
Записан
BRE
Гость
« Ответ #21 : Март 01, 2012, 11:29 »

но вопрос такой, а чем мне грозит такое явное приведение?
Сейчас происходит перекодирование в 8битную строку с использованием кодека, устанавливаемого методом QTextCodec::setCodecForLocale. По умолчанию он установлен на кодировку твоей локали. Т.е. для платформы с кодировкой CP1251 строка из QLineEdit будет преобразовываться к ней, а для платфорсы с UTF-8 - соответственно в UTF-8.
Если это нужное поведение, то все нормально.
Записан
Bepec
Гость
« Ответ #22 : Март 01, 2012, 12:02 »

Если ты делаешь программу для русскоязычной windows, то всё у тебя хоккей.

Если же ты делаешь кроссплатформенную программу, тебе придётся вникнуть глубже. Ещё глубже. И под конец использовать совсем другие кодеки. (с этой частью знаком теоретически, ибо мазохизмом не страдаю)
Записан
xTr1m
Гость
« Ответ #23 : Март 01, 2012, 13:59 »

В том то и дело, что для английской она в будущем тоже будет нужна
Записан
Bepec
Гость
« Ответ #24 : Март 01, 2012, 14:07 »

Вот тут и назревает вопрос интересный. Будет ли разница на английской локализации винды, иль не будет Улыбающийся

Ну в принципе, если тупо менять язык интерфейса, разницы нет Улыбающийся

Update: При смене системной локали на суахили/енглиш/украйн/эсперанто русские буктовки отображаются заказячками, НО после приёма из lineEdit и процедурі обработки, получаются русские буковки.

PS помнится біл слух, что локаль устанавливаемая при установке и локаль, меняемая в системе разніе вещи, но... Єто слухи, с них спросу нєма.

PPS а счас украйн локаль стоит Подмигивающий Скептикам - менял именно локаль, а не язік ввода.
« Последнее редактирование: Март 01, 2012, 14:26 от Bepec » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.126 секунд. Запросов: 21.