kdb和x2B/q脚本如何对解码字符串进行编码

kdb和x2B/q脚本如何对解码字符串进行编码,kdb,Kdb,我正在寻找编码/解码q脚本中的字符串 .Q.x10、.Q.j10、.Q.x12和.Q.j12似乎不符合要求。 例如 我想对“Hello world”进行编码,我应该能够对其进行进一步解码您的问题是默认的.Q.j10和.Q.x10不允许使用空格字符”,因为空格字符不在使用的默认字母表中: q).Q.j10 64/:?["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"] 如果您查看官方文档中的“提示”注释: 您将看

我正在寻找编码/解码q脚本中的字符串 .Q.x10、.Q.j10、.Q.x12和.Q.j12似乎不符合要求。 例如
我想对“Hello world”进行编码,我应该能够对其进行进一步解码

您的问题是默认的.Q.j10和.Q.x10不允许使用空格字符
,因为空格字符不在使用的默认字母表中:

q).Q.j10
64/:?["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"]
如果您查看官方文档中的“提示”注释:

您将看到,他们建议您创建自己的.Q.j10/.Q.x10函数,其中空格字符是自定义字母表中的第一个字符。不过,您的字母表仍然必须只有64个字符,因此您必须去掉
+
/
(或者用您选择的另一个字符替换它们)

2019年8月16日,k4主题框(主题为“b64编码”)上出现了类似问题,Geo Carncross提出了b64解码的解决方案:

q).Q.btoa"Hello World!"
"SGVsbG8gV29ybGQh"
q)
q){c:sum x="=";neg[c]_"c"$raze 256 vs'64 sv'0N 4#.Q.b6?x}"SGVsbG8gV29ybGQh"
"Hello World!"

我还没有测试过后者

把它编码成什么?为延迟响应道歉,我是说一些晦涩的文字,以至于没人能读