Koa中使用cookies

错误重现:(使用ctx.cookies.set时报错)

这是因为koa的http的header字符集支持US-ASCII子集的字符集,故设置中文是'utf8'时就会报上面错误

解决方法有两种:

1. 使用new Buffer().toString('base64')转换

2. 使用encodeURIComponent()转换

1 this.cookies.set('test', new Buffer('你好').toString('base64'))
1 new Buffer(ctx.cookies.get('test'), 'base64').toString();

或者

1 ctx.cookies.set('uname', encodeURIComponent('你好'))
2 
3 decodeURIComponent(ctx.cookies.get('uname'))

如果value值是英文字符,无需转换

原文地址:https://www.cnblogs.com/hughes5135/p/10243378.html