如何在C Windows程序中将代码页设置为UTF-8?
我有一个第三方库,使用fopen打开文件.我可以使用wcstombs将我的Unicode文件名转换为当前代码页,但是如果用户的文件名在代码页之外有一个字符,则会中断.
理想情况下,我只需调用_setmbcp(65001)将代码页设置为UTF-8,但_setmbcp的MSDN文档声明不支持UTF-8.
我怎么能绕过这个?
当我#include <windows.h>在C或C++中时,我被迫决定字符的格式,其中TCHAR等于char或wchar_t.
我环顾四周相当多的并尽可能的职位如这一个或类似网站这点破wchar_t事儿来了约一个很久以前UTF8之前,对各种原因,并不是一个特别好的解决方案的Unicode现代编程.然而,这些并没有说明已经运行的现有系统的支持wchar_t.
所以我的问题是,我应该使用哪一个?如果我使用普通的char遗嘱将来会被MS抛弃,因为在一天结束时,wchar_tAPI 的版本是最近的?或者,如果我使用wchar_t,将我的代码运行在其他现代平台上是否会很痛苦,这些平台后来使用charUTF8中的普通版本开发?