如何在JavaScript中将字符串转换为Base36格式

4

var sVar = "someString";

我尝试使用sVar.toString(36),这是从num.toString(2)推断出来的。但它不起作用。

我知道将字符串转换为base64可以使用atob/btoa,但我没有找到base 36的转换方法。也许有一种变体可以实现这个功能吗?


字符串转换为Base36... sVar 是一个字符串。 - Muhammad Umer
这里sVar的值是多少? - jdphenix
1
我想将 "string" 转换为 Base36。 - Muhammad Umer
4
这个问题不是重复的。链接的问题是如何将一个十进制数转换为三十六进制。这个问题是关于如何将一个字符串转换为三十六进制数。这是两个不同的问题,有两个不同的答案。 - imjosh
1个回答

11
你可以使用 parseInt 将字符串转换为 36 进制整数。
var myString = "somestring";
var myNum = parseInt(myString, 36); /* 2913141654103084 */

您可以使用.toString将其转换回字符串。

myNum.toString(36) /* "somestring" */

这两个函数都需要传入一个数字“基数”作为参数(介于2和36之间的整数,用于表示数值的进制),对于基数为36的情况,应该将其设置为36


根据http://www.reddit.com/dev/api#fullnames,对于字符串“aww”,我应该得到“15bfi0” .. 你能解释一下吗? - Muhammad Umer
但我得到了这个 14144 - Muhammad Umer
3
该代码仅适用于某些字符串。例如,decode36(encode36("FooBarW000t"))-> foobarw000t - imjosh
好的,问题在于 Reddit 将整数 ID 转换为 Base36 而不是 subreddit 的名称。 - Muhammad Umer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接