如何在使用WideCharToMultibyte时删除控制字符

时间:2014-08-26 18:44:21

标签: c++ windows string-conversion

我正在使用与某些遗留代码接口的Windows UI自动化客户端。在调用遗留代码时,我必须将LPWSTR转换为char *,它在大多数情况下都有效,但有时输入字符串包含控制字符(例如不可见的LTR控制字符),而WideCharToMultibyte总是映射这些字符至 '?'。

是否可以删除这些字符?还有其他功能更适合此目的吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

看起来没有一个功能可以实现这一点,所以我使用Mark Random的评论解决方案。

  

让lpDefaultChar指向一个永远不会出现在字符串中的字符,例如0x01,然后从输出中删除这些字符。 - Mark Ransom