Most of the programmers like, have started coding with non-UNICODE character set. In schools, university it really doesn’t matter. What we focus on is the implementation or solution for a particular problem and thus we learn how to program. But things are a bit different when we comes to serious software development. There are few reasons to develop with UNICODE.
1. The new generation operating systems are distributed all over the world with different local language support like Chinese, Japanese, etc. and natively supports UNICODE. All the operating system interfaces are designed with UNICODE.
2. It allows to easily localize our application. Single binary can contain support for multiple languages.
3. In the performance point of view UNICODE is better than using ANSI interface. Because it’s required ANSI/MBCS to UNICODE conversion before calling system API. The conversion cost and temporary buffers will be an overhead. Also it ensures that we can use all Operating system interfaces. Some APIs only supports UNICODE interfaces only.
4. COM and .NET Framework requires UNICODE strings. So using UNICODE ensures smooth interoperability/integration with these frameworks.
Is there anything additional? Please post as comments.