For instance if I had only ASCII characters and then switched to Unicode now I have to consider special characters, and bigger strings or chars. What else along these lines should I be considering?I'm assuming a Unicode string contains special characters as well, but other than that, what am I missing?
What should I consider when converting from ASCII to Unicode?
strings;unicode
Depending on the encoding, you might get larger char sizes (8 bits->16 bits), though UTF-8 is able to handle a Unicode character with the same size as a standard ASCII character. Bytes are encoded and decoded in Unicode (while ASCII isn't, as it has a 1-to-1 relation with the byte value), giving a minor performance penalty. Different Unicode encodings exist, such as UTF-8 (8 bits), UTF-16 (16 bits) and UTF-32 (32 bit, I have never seen this one in use though).You get advantages, more characters. This is needed if you want to internationalize your program to a bunch of different lamguages because they may use different characters than the English alphabet does. The little possible space and performance gain is seldom worth sticking to ASCII in case your language has built in support for Unicode.Some software might have a trouble with Unicode, but that is far from a problem today.Unicode is a superset of ASCII, you won't lose characters, only gain. As you have more characters, you will also have to handle more of them. Say you have a method for converting a string to lowercase, you will have to handle many more different characters if you used Unicode instead of ASCII.