Программирование с использованием QChar немного отличается от программирования с применением char. Для получения числового кода символа QChar вызовите для него функцию unicode(). Для получения кода ASCII переменной типа QChar (в виде char) вызовите функцию toLatin1(). Для символов, отсутствующих в кодировке Latin-1, функция toLatinl () возвращает '\0\
Если нам заранее известно, что все строковые данные в программе представлены в кодировке ASCII или Latin-1, мы можем использовать такие стандартные функции (определенные в файле <cctype>), как isalphaQ, isdigit() и isspace(), для обработки возвращаемого функцией toLatinl () значения. Однако в общем случае лучше использовать функции-члены класса QChar для выполнения этих операций, поскольку они будут правильно работать для любых символов Unicode. К таким функциям класса QChar относятся isPrint(), isPunct(), isSpace(), isMark(), isLetter(), is-Number(), isLetterOrNumber(), isDigitO, isSymbol(), isLower() и isUpper(). Например, ниже показано, как осуществлять проверку символа на цифру или прописную букву:
if (ch.isDigit() || ch.isUpperO)
Этот фрагмент кода правильно работает для любых алфавитов, в которых различаются символы верхнего и нижнего регистров, в том числе для латинского, греческого и кириллицы.
Строку в кодировке Unicode мы можем использовать в любом месте программного интерфейса Qt, где допускается применение строки типа QString. Qt сам отвечает за правильное ее отображение и преобразование в соответствущие кодировки при взаимодействии с операционной системой.
Особенно внимательными надо быть при чтении и записи текстовых файлов. Текстовые файлы могут использовать различные кодировки, и часто оказывается невозможным определить кодировку текстового файла по его содержанию. По умолчанию QTextStream использует локальную системную 8-битовую кодировку (которая доступна при помощи функции QTextCodec:: codecForLocale()), как для чтения, так и для записи. Для стран Америки и Западной Европы это обычно подразумевает кодировку Latin-1.
Если мы разработали свой
<< назад вперед >>