Razlog zasto ne ispisuje kako treba je jednostavan: Windows API-ji taj tekst ne tretiraju kao UTF-8, cak i ako je ispravan UTF-8 sto se kodova tice. Verovatno moras eksplicitno da Win32 API-ju "nagovestis" da je u pitanju UTF-8, bilo menjanjem kodne strane u programu, ili "beta" menjanjem sistemskog lokaliteta na 65001 na nivou OS-a.
Microsoft verovatno ne sme da "ukljuci" UTF-8 svuda iz 2 razloga:
- MSFT kod
- Sav 3rd Party kod
Ironicno, Microsoftove odluke iz proslosti ce im ovde bar malo pomoci: vecina "novih" Win32 aplikacija (novih = sve u proteklih 10 godina) je verovatno "Unicode" (UTF-16), bar na papiru kako su kompajlirane. To znaci da ce biti mnogo manje "sudara" korisnickog koda koji ocekuje ASCII i koda koji je predvidjen za UTF-8, zato sto vecina korisnickog Win32 koda sa OS-om komunicira preko "W" verzija API-ja (UTF-16).
"Skoro" nije "Sve" - sto znaci da uvek postoji rizik. Mada MSFT ovo moze relativno lako da resi tako sto aplikacije koje nemaju neki novi manifest tretira kao ANSI ili UTF-16, dok nove aplikacije bivaju tretirane kao UTF-8 ili UTF-16.
Ni to nije savrseno resenje, ali bar obezbedjuje kakav takav plan.
MSFT sistemski kod je druga prica, ovaj kod mora da funkcionise 100% korektno sa UTF-8, inace sve gubi smisao.
Verovatno ne pomaze to sto MSFT verovatno nije ni planirao neke velike promene na OS-u.
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey