Long time hobby developer here.
Over the years I built up a game framework based on Win32/DirectX. Since the days of old it's been using std::string for pretty much everything, simple lookup strings as well as file names.
Now the days of ASCII are going away. On Windows this means file names are Unicode. But I wouldn't want every little string being stored as Unicode. This forces me to differ between file names and other strings.
I'm not overly fond of UTF8, as variable character sizes sound like a major annoyance for GUI display.
How do others cope with this? Use different string types? Am I overthinking things by trying to avoid Unicode strings?