Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delphi 2010 Wide functions vs. String functions

We're currently converting a Delphi 2007 project to Delphi 2010. We were already using Unicode (via WideStrings and TNT Unicode Controls).

I was expecting to replace all Wide functions, e.g. WideUpperCase, with their equivalent, e.g. UpperCase, but they do not work the same way. For example, WideUpperCase works differently from UpperCase. WideUpperCase correctly uppercases Campañas, but UpperCase leaves the ñ in lower case.

Are there any other differences that I should be aware of? e.g. do WideFormat and Format work the same?

Thanks

like image 759
Mick Avatar asked Apr 23 '10 02:04

Mick


2 Answers

You should use ToUpper function from Character unit to uppercase unicode strings. Or else you can use AnsiUpperCase if you need to support the common codebase for non-unicode and unicode Delphi versions - AnsiUpperCase is Ansi function for Delphi 2007 and prior, and unicode function for Delphi 2009 and above.

like image 65
kludg Avatar answered Oct 21 '22 16:10

kludg


The naming is really bad (due to keeping compat with older versions). I suggest you read the cos for each string function you might want to use and check if it works with Unicode or not.

like image 37
alex Avatar answered Oct 21 '22 16:10

alex