从字符串中删除不可见的字符

时间:2016-09-06 11:05:36

标签: c++ json visual-studio unicode

我在C / C ++环境中使用mongoc驱动程序,为了将字符串从json转换为bson文档,我首先从ISO-8859-1转换它使用UTF-8iconv因为mongo c驱动程序有多字节characers的问题。

在某些情况下,我的json文件可以包含特殊不可见字符(例如,在Notepad ++中显示为空格字符的字符,但我可以在cygwin控制台),这将在解析期间导致问题。使用isprint会使程序因这些字符而崩溃,因此我使用iswprint

我想做一些事情,比如:

for (int i = 0; i < str.length(); i++) {
    if (!iswprint(strx[i]))
        strx[i] = ' ';
} // strx is of type std::string

但是,iswprint返回的值对于不可见字符是256,而对于像ß

这样的字符则是0

0 个答案:

没有答案