
Patrick Bennett wrote:
Stefan Seefeld wrote:
Patrick Bennett wrote:
It should be char* (and std::string) UTF-8 strings throughout for all platforms - passing as-is for platforms like Linux, and converting to/from UCS-2 on Windows. I can't speak for other platforms as I'm most familiar with Windows and Linux.
Isn't it abusive to force utf-8 into a std::string ?
Abuse is a relative term here. ;)
While it is technically possible the semantics isn't quite the same. operator [] (size_t i) wouldn't return the i'th character any more, at least not for characters outside the ascii range.
Correct (kind of), but I'd far prefer that std::string be used than for some completely new type to be defined.
I don't know anything about i18n, but I believed that something like basic_string<SomeOtherCharacterSet> was the way to go. -- Loïc