Delphi 2010 Широкие функции против строковых функций

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

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

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

Спасибо

2 ответа

Решение

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

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

Другие вопросы по тегам