I have a problem with national characters in string returning name of timezone. This function returns in std::string lower bytes from wide characters by simply cutting MSB in this loop:
while (ptr) result += (char) ptr++;
I think it should use system function WideCharToMultiByte for convertion.
The same problem is in: