一些比base64更好的东西来编码那些没有'不要占用太多的处理能力

something better than base64 to encode data that doesn't take up too much processing power

本文关键字:处理 太多 能力 更好 base64 那些 编码      更新时间:2023-09-26

我有一个网站,用户可以在其中添加多个项目,有时URL可能很长。我想通过使用base64编码,我会传递URL,但它包含一个斜杠,我用它来分隔项目,因为我的web服务器无法处理超过255个字符的路径名(2个斜杠之间的任何名称),否则我会得到403错误。

有没有其他方法可以用javascript快速编码数据,这样结果中出现斜杠的可能性为0%?

我正在寻找一些不太需要处理器的东西,如果可能的话,我想寻找比字符交换更好的东西。

如果我需要访问一个库,我会理解的,但javascript内置的唯一编码(据我所知)是base64(通过atob函数),我想要一些不同的东西。

我还希望能够使解决方案与旧的网络浏览器一起工作。

您需要的是encodeURIComponent,它是javascript规范的一部分,并自动包含在所有javascript环境中

var url = 'example.com/someextenstion/' + encodeURIComponent(theString);

有很多方法可以解决这个问题,但最简单的方法之一是采用atobbtoa的实现,并在编码时将其修改为使用-而不是/。你必须重命名这些函数,这样它们就不会屏蔽标准函数,但这里有一些JavaScript源代码可以做到这一点:github。在该特定实现中,只需将_ALPHA中的/替换为-(或您选择的任何字符)。

按照Amit的建议做可能会更快:使用标准函数,在转换时快速替换/的字符串:str.replace(/'//g,'-');,并在解码时执行相反的操作,但在这个应用程序中,性能似乎并不关键。