问题描述
我正在使用 Jest 测试对包含西里尔字母的 URL 的 GET 请求,但它给了我以下错误:
#10 13.98 TypeError [ERR_UnesCAPED_CHaraCTERS]: Request path contains unescaped characters
#10 13.98
#10 13.98 at Test.request (node_modules/superagent/src/node/index.js:785:18)
#10 13.98 at Test.Object.<anonymous>.Request.end (node_modules/superagent/src/node/index.js:949:8)
#10 13.98 at Test.end (node_modules/supertest/lib/test.js:153:7)
#10 13.98 at node_modules/superagent/src/request-base.js:311:12
#10 13.98 at Test.Object.<anonymous>.RequestBase.then (node_modules/superagent/src/request-base.js:293:31)
#10 13.98
我的代码是:
const response = await request.get("hааy.com").expect(200);
其中 'a 是西里尔字母。有什么想法吗?
解决方法
如果将来有人遇到此问题,我会通过执行以下操作来解决此问题:
const response = await request.get(encodeURI("h"+"\u0430"+"ay.com")).expect(200);