Javascript 保存HTML Blob文件会在其中生成奇怪的文本

Javascript 保存HTML Blob文件会在其中生成奇怪的文本,javascript,html,blob,textblob,Javascript,Html,Blob,Textblob,所以我有一个逗号分隔的文件,我保存到一个blob。 Im使用最新的基于Chrome的边缘浏览器。 这个特殊的代码(typescript)我已经好几个月没有更改了。 但是突然,我注意到,如果我用一个特定的日期时间字符串保存文件,那么我会得到一个奇怪的输出。基本上,我看到的是奇怪的文本,而不是datetime字符串 以下是我正在保存的日期时间字符串(完全可以在保存的文件中看到): 以下是出现的奇怪文本: ‎9‎/‎26‎/‎2020‎ ‎7‎:‎00‎:‎

所以我有一个逗号分隔的文件,我保存到一个blob。 Im使用最新的基于Chrome的边缘浏览器。 这个特殊的代码(typescript)我已经好几个月没有更改了。 但是突然,我注意到,如果我用一个特定的日期时间字符串保存文件,那么我会得到一个奇怪的输出。基本上,我看到的是奇怪的文本,而不是datetime字符串

以下是我正在保存的日期时间字符串(完全可以在保存的文件中看到):

以下是出现的奇怪文本:

‎9‎/‎26‎/‎2020‎ ‎7‎:‎00‎:‎00‎ ‎AM
现在,我不能简单地将这个奇怪的字符串复制粘贴到这个编辑窗口中(它认为我试图粘贴一个图像),我猜它是二进制的。这可能是一个巨大的暗示,但它并没有给我敲响任何警钟

所以问题是:当我确定我在写一个字符串时,为什么这个二进制呢

经过一番周密的研究之后,我发现似乎存在编码问题。还是不知道为什么。此外,仔细检查这个奇怪的字符串,日期实际上就在那里。它看起来很奇怪,因为每个组件都用这个奇怪的字符串“–Ž”填充。

您的字符串充满了

const text=`‎9‎/‎26‎/‎2020‎ ‎7.‎:‎00‎:‎00‎ ‎AM`;

console.log(text.replace(/\u200e/g,“[LTR]”)这是合法的解决方案吗?执行字符串替换(/[^\x20-\x7E]/g'')。理论上,这只会留下ASCII字符。这不是我的专业领域,但似乎日期字符串中的每个字符都表示为64位值,其中最后一个字节是实际字符。每个“字符”有7个字节,十六进制值
C3 A2 E2 B2 AC C5 BD
,后跟ascii字符值。推测文件是用64位编码写入的,但打开时被解释为8位。(这并没有解释其他7个字节的值,但正如我所说的,这不是我的专业领域。)这可能是我感兴趣的。你看到的序列显示在。
‎9‎/‎26‎/‎2020‎ ‎7‎:‎00‎:‎00‎ ‎AM