Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Unicode

Unicode - многобайтовый набор символов, переносимый между всеми основными компьютерными платформами и с подходящим для охвата всего мира. Локаль имеется также одна; не включает кодовые страницы или другие сложности, которые затрудняют написание и тестирование программного обеспечения. Не существует другого достаточно кроссплатформенного набора символов. For these reasons, Trolltech uses Unicode 4.0 as the native character set for Qt.

Информация о Unicode в сети

У Unicode Consortium имеется некоторое доступных количество документов, включая

Стандарт

The current version of the standard is 4.0.0.

Unicode в Qt

В Qt, и в большинстве использующих Qt приложений,большая часть или все строки, доступные пользователю, сохраняются с использованием Unicode. Qt предоставляет:

Для получения всех выгод Unicode, мы рекомендуем использовать QString для хранения строк, доступных пользователю, и выполнять все операции ввода/вывод текстовым файлом используя QTextStream. Используйте QKeyEvent::text() для ввода с клавиатуры в любом пользовательском виджете, который создадите; это не имеет большой разницы для медленно набирающих людей в Западной Европе или Северной Америке, но для быстро набирающих людей или людей, использующих специальные методы ввода, использование text() полезнее.

Все аргументы функции в Qt, которые могут быть строками, доступными пользователю, QLabel::setText() и многие другие, получают объекты const QString &. QString предоставляет неявное приведение типов из const char *, так что такие вещи

 label->setText("Password:");

будут работать. Также имеется функция, QObject::tr(), которая предоставляет поддержку перевода, например так:

 label->setText(tr("Password:"));

QObject::tr() отображает из const char * в строку Unicode, и использует устанавливаемые объекты QTranslator для выполнения отображения.

Qt предоставляет некоторое количество встроенных классов QTextCodec, то есть, классов, которые знают как преобразовывать между Unicode и устаревшими кодировками для поддержки программ, которые должны сообщать другим программам или читать/записывать файлы в устаревших файловых форматах.

По умолчанию, преобразование в/из const char * использует кодек, не зависящий от локали. Однако, приложения могут легко найти кодеки для других локалей и установить любому открытому файлу или сетевому соединению использование специального кодека. Можно также установить новые кодеки для преобразований, не поддерживаемых встроенными кодеками. (На момент написания одним из таких примеров является Vietnamese/VISCII.)

Поскольку US-ASCII и ISO-8859-1 являются настолько распространёнными, имеются особые быстрые функции для отображения в/из них. Например, для открытия пиктограммы приложения сделаем:

 QFile file(QString::fromLatin1("appicon.png"));

или

 QFile file(QLatin1String("appicon.png"));

Относительно вывода, Qt выполняет наиболее подходящее преобразование из Unicode в любую кодировку, предоставляемую системой и шрифтами. В зависимости от операционной системы, локали, доступности шрифта и поддержки со стороны Qt используемых символов, это преобразование может быть правильным или неправильным. Мы будем расширять это в следующих версиях, с выделением в первую очередь наиболее распространённых локалей.

Смотрите также Интернационализация с Qt.


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5