【问题标题】:Decode Base64 string解码 Base64 字符串
【发布时间】:2019-05-29 12:31:43
【问题描述】:

我目前正在开发一个自定义 SAPUI5 应用程序。我想进行一个服务调用,它期望 Guid 的格式与当前可用的格式不同。

一个例子:

  • 可用(base64):QvLAUUzUCZbhAAAAjSS2iA==
  • 应该是(十六进制):42F2C0514CD40996E10000008D24B688

我还没有找到可以产生所需结果的在线解码器,但是,我能够使用 SAP ABAP 标准功能模块 HTTP_BASE64_ENCODE 将 guid 42F2C0514CD40996E10000008D24B 编码为 QvLAUUzUCZbhAAAAjss2iA==。然而,使用通常的在线编码器,我得到了不同的结果。

如何使用 JavaScript 解码编码的 guid 以使其具有所需的格式?

【问题讨论】:

  • atob("QvLAUUzUCZbhAAAAjSS2iA==").replace(/[^]/g, c => c.charCodeAt(0).toString(16))
  • 嗨,托马斯。谢谢你的回答,这看起来已经很不错了!只有零有问题。您的函数返回“42f2c0514cd4996e10008d24b688”,它应该是“42F2C0514CD40996E10000008D24B688”。我将丢失的标记为粗体。他们好像迷路了……
  • 你能告诉我一些关于 regex 和 charCodeAt 的含义吗?谢谢!
  • 正则表达式正在替换其十六进制表示的所有字符。

标签: javascript sap decode encode


【解决方案1】:

字符串为十六进制格式,您必须对其进行转换。

首先将字符串转换为二进制 (atob > charCodeAt),然后使用 toString(16) 得到十六进制。

我不会发布代码,因为它已经解释过了 Decode Base64 to Hexadecimal string with javascript

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    相关资源
    最近更新 更多