我目前正在使用 curlpp 执行 HTTP 查询,但 curlpp 报告 URL 中有非法字符。我已将 URL 问题缩小到从配置文件中读取的变量(一行,它只包含所需的信息)。另一个奇怪的事情是,这只发生在 Fedora x64bits 安装上(我没有尝试过其他 x64bits 发行版)。在我的两台开发机器上,它运行得非常好(Ubuntu 和 OpenSuse,32 位)。我尝试打印从文件中读取的字符的 ASCII 码,一切看起来都很正常,但是,字符串末尾有一个换行符。现在,这个字符出现在所有系统中,但在 Fedora 系统上它被报告为非法字符。
我想知道是否有一个选项可以强制 curlpp 忽略换行符。我还尝试使用 curl_easy_escape 函数转义字符串,但它将换行符转换为百分比编码 %0A。这反过来又不会被 HTTP 服务器识别为现有 URL(它会输出 404 错误)。
有没有人遇到过这个问题?是否可以忽略此字符,或者只是替换它的最佳方法?
在此先感谢您的帮助!
最好的祝福,
PS:在所有系统中,库版本都是相同的(这有点奇怪)。curlpp的版本是(0.7.3)
编辑:由于大众需求,我发布了从文件中读取变量的代码。
std::ifstream keyfile (pathToFile.c_str());
std::stringstream buffer;
buffer << keyfile.rdbuf ();