Functions foowithout a suffix are macros. Functions fooAare deprecated and are simple wrappers around functions fooWthat are the only ones that actually do the job. Windows uses UTF-16 strings for everything, so if you want to continue to use UTF-8 strings, you must convert them for every API call (e.g. using MultiByteToWideChar).
: UTF-16, UTF-32 UTF-8. ( ) . , UTF-8 : , ICU, Qt Java, UTF-16 . , Unicode , , : Windows, UTF-16, . Linux UTF-8 ( Unicode 8- ), . . OS X UTF-8 POSIX UTF-16 (Carbon, Cocoa).
: "ANSI" "Unicode", Microsoft, . Microsoft "Unicode" " ", "UTF-16" () BMP ( ). "ANSI" Microsoft , Windows.
, UTF-16 ICU.