The function converts to std::string using the encoding defined by the current locale.
In that event, the function is not poorly named, it's just ambiguous because it's platform dependent.
Personally, I would remove it altogether, as platform dependent behavior kind of defeats the point of using a crossplatform lib like SFML.
Linux has moved to UTF-8, but Windows is still stuck with extended-ASCII codepages.
Not true. Windows has been on UTF-16 since at least NT 4.0 (1997-ish?)
Granted, the C++ standard libs are oblivious to this and tend to not support UTF-8 when printed to cout (or passed to fopen, etc), but that's not an issue that SFML needs to concern itself with, IMO.