【发布时间】:2014-11-27 13:57:28
【问题描述】:
我有一个const unsigned char* bar,它是以空字符结尾的字符缓冲区。
我需要将此复制到std::string。目前我使用
std::string foo;
foo.assign(bar);
但是由于各种原因(由于bar),列表中出现了值> 127的奇数字符。用 32(空格)替换这些字符就足够了,最好完全省略它们。
有什么办法可以替换
在我复制到字符串之后。使用类似
std::replace(foo.begin(), foo.end(), /*something funky*/)在我执行
assign时使用某种谓词“后插入”。
我更喜欢第 (2) 行的内容。在我深入研究 for 循环之前,有没有更类似于 stl 的方法可以做到这一点?
【问题讨论】:
-
也许你应该尝试了解文本是如何编码的
-
它是 UTF-8,但我需要将它转换为 UTF-7 用于 LaTeX。奇怪的重音字符(可能 10000 分之一)回来了:我很高兴废弃边缘字符。
-
使用
\usepackage[utf8]{inputenc}并将 UTF-8 发送到 LaTeX stackoverflow.com/questions/1252998/… -
或者使用 xelatex,它接受 UTF-8 开箱即用
标签: c++