2012-11-20 25 views
1

Here您可以看到,当您从宽转换为窄时,某些符号可能会被替换为?。如何在字符串上应用W2A转换时检测这些情况。往返转换是一种方式,但速度不快。我想在转换W2A功能的同时,应该以某种方式标记转换不完全可能。如何获取这些信息?如何检测W2A转换是否完全成功

编辑:例如在

int WideCharToMultiByte(
    UINT CodePage, 
    DWORD dwFlags, 
    LPCWSTR lpWideCharStr, 
    int cchWideChar, 
    LPSTR lpMultiByteStr, 
    int cbMultiByte, 
    LPCSTR lpDefaultChar, 
    LPBOOL lpUsedDefaultChar 
); 

的情况下最后一个参数是告诉我需要什么。 W2A呢?如何检测案件?

回答

2

要检查此情况,请直接使用WideCharToMultiByte。您有一个迹象表明在那里使用了默认字符,并且您有影响转换过程的标志。

W2A使用相同的API,其中dwFlags为零,而lpUsedDefaultChar为NULL,所以您所需要的信息根本就没有被查询。

+0

谢谢,但我知道这一点。我需要检测W2A转换的情况。 – Narek

+0

'W2A'转换时不需要此信息。 –

+0

你怎么知道?请提供任何源代码?我也需要知道什么是替代品。 – Narek

相关问题