2013-10-24 6 views
2

У меня было приложение, построенное с использованием Qt 4. Оно использовало latin-1 как источник, и я всегда использовал QString :: fromLatin1. Тем не менее, при попытке подключиться к Qt 5 (на самом деле, я оба использовал Qt 5 и Windows 8 вместе, но я не думаю, что это ошибка Windows). Кодирование действительно выглядит как угодно, с некоторым странным пространством до/после текста.Проблемы с кодированием Qt 5

Это приложение работает с Qt 5/Windows 8:

Screenshot

Как вы можете видеть, ç и и ã появляются правильно, с каким-то странным пространством добавленным между ними. Кроме того, символ ó отображается правильно, без пробела.

Это, как я установил QLabel:

m_msgWelcome->setText(QString("Bem vindo ao biocódigo!\nSelecione uma opção ao lado para iniciar")); 

я уже пробовал как QString::fromUtf8 и QString::fromLatin1 без успеха.

+0

Это странно, в реальной проблеме с кодировкой я ожидал бы и неправильных символов. Какая кодировка имеет ваш исходный файл? Не могли бы вы сократить строку до «opção» и добавить вывод m_msgWelcome-> text(). ToUtf8(). ToHex()? Возможно также проблема с отображением шрифта с этим конкретным шрифтом. –

+0

Я получаю «6f70c3a7c3a36f» toUtf8(). ToHex(). Изменение шрифта исправило проблему, теперь я понятия не имею, почему это произошло, так как я использую тот же самый шрифт, который работал раньше. Хотите опубликовать это как ответ? –

ответ

1

С Qt5, как правило, вы можете просто сохранить все ваши файлы в UTF-8 (не нужно использовать метод, например QString::fromAnythingEncoding).

С Qt Creator вы можете сделать это: Edit затем Выбор кодировки (для всех файлов).

В будущем, вы также можете изменить настройки по умолчанию: Инструменты>Опции>Text Editor>Поведение>Стандарт.кодировка затем положить UTF-8.

Если проблема интервалов все еще существует, попробуйте использовать другой шрифт.

+1

Это был действительно вопрос рендеринга с шрифтом, хотя я все еще не знаю, почему. Но большое спасибо за подсказку для кодирования, у меня было очень тяжелое время * конвертирование файлов в UTF-8 без потери моего акцентированного кода. –

+0

Мои исходные файлы UTF8, но редактор Qt Creator не показывает акцентированные символы. У вас есть идея? Это проблема в редакторе, не имеет ничего общего с компиляцией. – Sigur

Смежные вопросы