there are already a few questions relating to this problem. I think my question is a bit different because I don\'t have an actual problem, I\'m only asking out of academic
Use UTF-16 and wchar_t internally, this works nicely with filenames and Windows API in general.
Set codepage to 65001, which is UTF-8. This ensures that when you read plaintext files, windows checks them for UTF-16 and BOM, ("the Windows standard"), and if no BOM, the text will be treated as UTF-8 ("the world standard") and translated to UTF-16 for your use.