javascript - 为什么 JavaScript 使用 Base64 编码?

标签 javascript base64

我有一个嵌入了 JavaScript 的 HTML 文件,如下所示:

<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4z ... ></script>

我发现它就像普通的 JavaScript,但在 Base64 coding 中.

我用了https://www.base64decode.org/解码JavaScript,发现它只是jQuery库。

现在我想知道在 Base64 中对 jQuery 进行编码而不是仅仅使用 <script type="application/javascript"> 加载它的原因是什么? ?特别是如果它比原始文本( Why the size of base64-encoded string is larger than the original file )还要大!

编辑:查看以下脚本:https://gist.github.com/kristian-lange/7605e6cd2c643313022eb796e15458fa .

最佳答案

可能是因为人们不知道如何使用正确的编码,然后更喜欢使用 base64,即使编码错误,它通常也能工作。

例如,这应该有效:

<script src="data:text/javascript,console.log('âàáäã')"></script>

但是,如果您在 UTF-8 文件中使用它,但不告诉浏览器编码,它可能会认为它类似于 windows-1252,并将其解析为

<script src="data:text/javascript,console.log('âà áäã')"></script>

如果使用base64,则会是

<script src="data:text/javascript;base64,Y29uc29sZS5sb2coJ8Oiw6DDocOkw6MnKQ=="></script>

浏览器可能会正确解释它,即使它尝试使用错误的编码来读取它。

关于javascript - 为什么 JavaScript 使用 Base64 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38553414/

相关文章:

javascript - 如何使用 jQuery/AJAX 在 HTML div 中加载 html 页面内容?

javascript - 我如何加载外部 html 并使其与 jquery 一起工作

javascript - 将 Sinon 与 Typescript 和接口(interface)结合使用

c# - 在 C# 上获取文件的 SHA1 二进制 base64 哈希

java - Java代码的C实现的输出差异

c# - DES-ECB加解密

javascript - 在 Protractor 中捕获 “angular could not be found on the window”

javascript - 删除 javascript 事件监听器

javascript - Express JS 4.0,提供二进制数据,请求 Accept header 更改输出

javascript - Nodejs 中哈希字符串的网络安全编码