javascript - 在 JS 中强制百分比编码
问题描述
如何对字符串进行百分比编码"ü"
,使其输出为"%C3%BC"
?
这是我当前的实现:
function percentEncode(ch) {
return '%' + ch.codePointAt(0).toString(16).toUpperCase().padStart(2,'0');
}
但这会将其编码为'%FC'
.
encodeURIComponent
正确处理它,但我需要编码一些encodeURIComponent
拒绝编码的字符,所以我不能使用它。
解决方案
我想我想通了。
const UTF8_ENCODER = new TextEncoder();
function percentEncode(str) {
return Array.from(UTF8_ENCODER.encode(str)).map(i => '%' + i.toString(16).toUpperCase().padStart(2,'0')).join('');
}
console.log(percentEncode('ü'))
推荐阅读
- php - thedevdojo/chatter SQLSTATE[HY000] 外键约束
- floating-point - MIPS:除法算法(IEEE-754 格式的有效位除法)对最后 4-5 位 (LSB) 给出错误答案
- c# - 验证 Web 应用程序中的静态资源
- python - Camelot 只阅读 pdf 的第一页
- php - php 代码没有执行,而只是显示在页面屏幕上
- r - 如何使用 formattable 和 color_tile 有条件地为表格元素着色?
- sql - MS Access SQL 切换功能
- machine-learning - 为什么正态性被认为是因变量和自变量的重要假设?
- java - Spring jpa util 日期
- java - 如何在不等待“completable”完成的情况下与“single”并行执行“completable”?