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 или нет.