Javascript 字符串编码不熟悉(Base64?)-尝试保存和使用.3gp文件的字符串内容

Javascript 字符串编码不熟悉(Base64?)-尝试保存和使用.3gp文件的字符串内容,javascript,string,base64,3gp,Javascript,String,Base64,3gp,我试图将.3gp文件的内容作为字符串读取,以便以后再次将该字符串保存为有效的.3gp文件 当我读取字符串内容时,它的编码似乎与在Windows上查看.3gp文件的字符串内容时不同 以下是我收到的字符串内容开头的摘录: \u0000\u0000\u0000\u0018ftyp3gp4\u0000\u0000\u0000\u0000isom3gp4\u0000\u0000\t�moov\u0000\u0000\u0000lmvhd\u0000\u0000\u0000\u0000�o�K�o�K\u0

我试图将.3gp文件的内容作为字符串读取,以便以后再次将该字符串保存为有效的.3gp文件

当我读取字符串内容时,它的编码似乎与在Windows上查看.3gp文件的字符串内容时不同

以下是我收到的字符串内容开头的摘录:

\u0000\u0000\u0000\u0018ftyp3gp4\u0000\u0000\u0000\u0000isom3gp4\u0000\u0000\t�moov\u0000\u0000\u0000lmvhd\u0000\u0000\u0000\u0000�o�K�o�K\u0000\u0000\u0003�\u0000\u0000�\u0000\u0001\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002\u0000\u0000\u0000�meta\u0000\u0000\u0000!hdlr\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0003\u0000\u0000\u0000\u0000\u0000\u001bmdtacom.android.版本\u0000\u0000\u0000\u0000\u0000mdtacom.android.manufacturer\u0000\u0000\u0000\u0019mdtacom.android.model\u0000\u0000\u0000\u0000\u001d\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0015data\u0000\u0000\u0000\u0000\u0000\u0000\u0008.1.0\u0000\u0000\u0000\u0000\u001e\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0002\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001谷歌\u0000\u0000\u0000\u001d\u0000\u0000\u0000\u0003\u0000\u0000\u0000\u0015data\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\b1trak\u0000\u0000\u0000\tkhd\u0000\u0000\u0000\u0007�o�K�o�K\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000

在Windows上的记事本中打开有效的.3gp文件时,其内容如下所示:

ftyp3gp4 isomiso23gp4免费-kmdatzá!3月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月3日,本月,本月3日,本月3日,本月3日,本月,本月,本月10亩†KãKãTØXØAØn(HØCØBOØØm.§;'bØT+Un[uÎAØn(HØCØbØqØyØyØn)cm 欧元@B®-Uùbi%VýVüw 徖徖幠幠幠幠幠幠幠幠幠幠幠幠幠幠幠幠幠幠幠 ËE°2->¸wù¸:“‰NÏt‰XùI  P5f‰P ^ 9TT%LŽKþKÌLïIùg'§§§§Ž1ó65:9rŽ™¡™ª«œtÌL 本次研究的第五个月月和本次研究的第五个月和本次研究的第五个月和本次研究的第五个月和本次研究的第五个月和本次研究的第五个月和本次研究的第五个月和本次研究的第五个月和本次研究的第四个月和本次研究的第二个月和本次研究的本次研究的本本次研究的第三个月和本本次研究的本次研究的第三个月和本次研究的本次研究的本次研究的本次研究的本次研究的本次研究的本次研究和本次研究的本本本次研究的本次研究的本次研究,本次研究的本次研究的本次研究,本次研究的本次研究的本次研究,本次研究的本次研究和本本本次研究的本次研究在本次研究的第三个月和本本次研究的第三个月和本本本次研究的第三次研究的òTèPèTèAèèAèuèGUèSèTHèyèA€ ÷a’»p€yßQ&,³#K™• 本次研究的结果是,在本次研究中的一名名名名为本次研究的第四名名名名名名名名名名为本次研究的第四名名名名名名名名名名名为本次研究的第四名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名为本本次研究的第四名名名名名名名名名名名名名名名名名名名名为本本本本本本本本本本本本本本本本本次次研究的研究的研究的第四名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名名376v>"×"Ec§Ö–Zå

根据我做的一些搜索,我相信我收到的字符串类型是Base64,并且我注意到使用unescape(encodeURIComponent())在javascript中处理该字符串会给我一个与有效的.3gp内容类似的结果,但并不准确


有人知道我需要对字符串做什么才能使它看起来像Windows中有效的.3gp文件字符串内容吗?这可能吗?

因为您只需要能够下载它,将它作为字符串保存就可以了。如果您可以使用节点缓冲区,它会更健壮,但javascript字符串应该能够承载所有内容你的字节通过了


小心处理下载api以确保它不会被转换为其他内容。

它看起来不像base64。它看起来像utf16。您是如何读入的?您是如何读取文件以及如何打印数据的?您有一堆
\u0000
为空字节。这不是base64。我怀疑它是原始字节s(以及,.3gp/电影是二进制数据文件)-如果是这样,尝试将其作为任何类型的“字符串”打开都是错误的。(记事本或其他文本编辑器通常会有自己的特殊类型的“错误”,这取决于编码和无效数据的处理方式)。不要处理字符串/文本,而是使用字节序列(和二进制编辑器)…我使用一个名为Expo的React本机javascript库从android智能手机上读取了该文件。我不确定我是从哪里想到它是Base64的,但听起来肯定不是这样。它实际上只是一个音频文件,但android保存音频的方式显然是.3gp或.mp4。这可能是为什么会有很多n吗ull字节?我认为由于javascript在客户端打开文件方面的限制,Expo.js api似乎只能以字符串的形式读取文件内容。那么,我是否无法使用Expo提供的字符串内容呢?顺便说一下,字符串的类型是UTF-16,你是对的