Delphi 2010 Широкие функции против строковых функций - PullRequest
8 голосов
/ 23 апреля 2010

В настоящее время мы конвертируем проект Delphi 2007 в Delphi 2010. Мы уже использовали Unicode (через WideStrings и элементы управления Unicode TNT).

Я ожидал заменить все функции Wide, например WideUpperCase, ихэквивалентно, например, UpperCase, но они не работают одинаково.Например, WideUpperCase работает не так, как UpperCase.WideUpperCase правильно вводит прописные буквы Campañas, но UpperCase оставляет - в нижнем регистре.

Есть ли какие-либо другие различия, о которых мне следует знать?Например, WideFormat и Format работают одинаково?

Спасибо

Ответы [ 2 ]

9 голосов
/ 23 апреля 2010

Вы должны использовать функцию ToUpper из символьной единицы в верхний регистр строк юникода. Или же вы можете использовать AnsiUpperCase, если вам нужно поддерживать общую кодовую базу для версий Delphi, не поддерживающих Юникод и Юникод - AnsiUpperCase - это функция Ansi для Delphi 2007 и более ранних версий, а функция Unicode для Delphi 2009 и более поздних версий.

1 голос
/ 23 апреля 2010

Наименование действительно плохое (из-за несовместимости со старыми версиями). Я предлагаю вам прочитать cos для каждой строковой функции, которую вы можете использовать, и проверить, работает ли она с Unicode или нет.

...