Here 你可以看到当你从 Wide 转换为 Narrow 时,一些符号可能会被替换为 ?
。当 W2A 转换应用于字符串时如何检测这些情况。往返转换是一种方式,但速度不快。我想在转换 W2A 函数时应该以某种方式标记转换不是完全可能的。如何获取这些信息?
编辑:例如
int WideCharToMultiByte(
UINT CodePage,
DWORD dwFlags,
LPCWSTR lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cbMultiByte,
LPCSTR lpDefaultChar,
LPBOOL lpUsedDefaultChar
);
最后一个参数告诉我需要什么。 W2A 呢?如何破案?
最佳答案
要检查这一点,请使用 WideCharToMultiByte直接地。您有指示在那里使用了默认字符,并且您有影响转换过程的标志。
W2A
使用相同的 API,其中 dwFlags
为零,lpUsedDefaultChar
为 NULL,因此根本不会查询您需要的信息。
关于c++ - 如何检测 W2A 转换是否完全成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469211/