【发布时间】:2020-08-07 17:36:45
【问题描述】:
我有一个代表一些二进制数据的字符串,如下所示:
\x89PNG\x1a\x00\x00\x00IHDR\x00\x00等
我需要按原样将此字符串发布到某些 API 等,但问题是 Javascript 会自动将其转换为
PNG等
.escape、.encodeURI.. 等都无济于事
在 Python 中,这种转换可以像 string.encode('UTF-8') 那样完成,但我在 JS 中找不到类似的东西。
也许有人知道图书馆或可能有帮助的东西?
【问题讨论】:
-
你是如何上传的?它需要在 FormData 中,而不是字符串中。
-
string.encode("UTF-8")用于包含文本的二进制数据。 PNG 数据不是文本,将其编码为 UTF-8 是不正确的。 -
@Barmar 我愿意,问题是我需要将加密签名添加到标题中。签名是从我发布的全部数据生成的,包括 PNG。这就是为什么我需要这个字符串
-
遍历调用
string.charCodeAt(i)的字符串以获取数字代码并计算签名。 -
"我有一个代表一些二进制数据的字符串" - 你为什么不使用类型化数组/数组缓冲区?是字符串
"\\x89PNG\\x1a\\x00\\x00\\x00IHDR\\x00\\x00"还是真的包含字节作为字符"\x89PNG\x1a\x00\x00\x00IHDR\x00\x00"?
标签: javascript utf-8