白嫖worker 自建短链服务 Url-Shorten-Worker 支持中文 支持emoji

需求

有朋友反馈, 如果短链自定义为中文, 就不行.

测试一下. 在管理页面中添加 "中文短链"

管理页面的LocalStorage List,含加载/清空/导入KV三个按钮与短链列表

查询 KV 库, 添加正确.

按前缀搜索中文短链,列表显示已添加的短链

在浏览器中测试, 报错不存在.

浏览器访问中文短链返回404 Not Found


========

分析

进到 Cloudflare 的 worker 编辑页面.

加上控制器打印日志语句.

Cloudflare Worker编辑页,橙色高亮console.log(path)调试语句

测试.

workers.dev测试面板GET中文短链,返回302跳转

找到原因了. 中文字符被转换了.

Console显示百分号编码的中文字符,并提示事件处理返回Promise

找个方法转换回去就行.


========

实践

问了一下GPT https://devv.ai/search?threadId=dhrz3tf3gidc

devv.ai给出的用decodeURIComponent解码中文短链的代码

增加一个转换

path = decodeURIComponent(path);

代码第290行橙色高亮 path = decodeURIComponent(path)

测试功能正常.

Console显示Worker输出的中文短链已正确解码

发散想了一下, 测试了一下 emoji, 也正常.

Console显示emoji短链的百分号编码F0 9F 8C B9,测试通过


========

完

Github

https://github.com/crazypeace/url-Shorten-Worker/

演示站

https://urlsrv.crazypeace.workers.dev/bodongshouqulveweifengci



评论