西里尔 URL 字符的类型错误?

问题描述

我正在使用 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);