Benefits of Unicode strings

An unsung benefit of programming for Microsoft .NET is that all strings are Unicode.  I didn’t realize just how much of a benefit this is until recently.  I’m in the middle of a Delphi project that has to be “global ready,” which means (among other things) that all the strings have to be localizable.  This is a giant pain.  Writing a localizable application in Delphi requires that I use three different string types (PChar, String, and WideString), and continually convert from one string type to another.  The problem is similar in C and C++.

With .NET, every string is Unicode and all functions that handle strings assume that the strings are Unicode.  One string type.  No conversions.  Life is good.