虽然不推荐使用Buffer的'binary',但我必须使用它:我使用node js + express编写一个web应用程序.用户可以下载文件,如果不使用,文件名将会出现乱码
res.download(allpath,buf0.toString('binary'));
Run Code Online (Sandbox Code Playgroud)
看值(是一个中国字符):
console.log(new Buffer('?'));
Run Code Online (Sandbox Code Playgroud)
输出:缓冲区,e7,89,9b
和
var buf0=new Buffer('?');
console.log(new Buffer(buf0.toString('binary')));
Run Code Online (Sandbox Code Playgroud)
输出:Buffer,c3,a7,c2,89,c2,9b
这个算法是什么意思,为什么使用二进制toString是有效的?
当我捕获值但值类型是模板函数中的引用时
template<class T>
void test(T&&i)
{
++i;
std::cout << i << std::endl;
}
template<class T>
void typetest(T&& t)
{
++t;
T t1(t);
[=]() mutable { std::cout << t1 << std::endl; return test(t1); }();
std::cout << t << std::endl;
}
int main()
{
int i=1;
typetest(i);
}
Run Code Online (Sandbox Code Playgroud)
它打印
2
3
2
Run Code Online (Sandbox Code Playgroud)
但是,当lambda调用时应该T t1(t); T是int&这样.为什么输出不是t1int&test(t1)
2
3
3
Run Code Online (Sandbox Code Playgroud)