I would say that you have two choices:
1. Use the Windows APIs with all the idiosyncrasies that they have as described above; or
2. Use someone else's Unicode libraries - perhaps those from the Unicode organisation itself (see http://site.icu-project.org
) which can be considered definitive.
Personally I would tend to go for option 2. because:
a. Unicode is not static and these libraries will be maintained in line with Unicode development;
b. These libraries are O/S independent - I know that mIRC is Windows only, but since it talks with other IRC clients, using a platform independent library, particularly the definitive
platform independent library, is likely to be more compatible in the end.
c. These libraries are open source and less likely to have idiosyncrasies than Windows.
I am not sure what libraries Python uses to deliver its Unicode support, but I don't hear a lot of stories about Python having idiosyncrasies - indeed, Python's implementation is perhaps a model of how to do it right.