Javascript 这种编码是什么/为什么这些.txt文件不是纯文本?
我正在浏览。例如,它附带了一些文本文件示例。这些文件具有Javascript 这种编码是什么/为什么这些.txt文件不是纯文本?,javascript,browser,Javascript,Browser,我正在浏览。例如,它附带了一些文本文件示例。这些文件具有.txt扩展名,但不是纯文本: !OohmwFjqwbMg@[?ADKJYXF@^?N?FAD =wnmwFvvwbM_@WNg@@@@C?C_@UA?AD@?Of@_@UTu@??BK?A??FUVP?@JF?AVP?@JF?AVPGTA?EL@? =urmwF|swbM_@UFS@@BK?C@C@A@E?CIGA?GE?CIGA@CF?@ABA@CJ@@GR]Ud@wA\T?@DB?AXP?@DB?A\T <aymwFnvwb
.txt
扩展名,但不是纯文本:
!OohmwFjqwbMg@[?ADKJYXF@^?N?FAD
=wnmwFvvwbM_@WNg@@@@C?C_@UA?AD@?Of@_@UTu@??BK?A??FUVP?@JF?AVP?@JF?AVPGTA?EL@?
=urmwF|swbM_@UFS@@BK?C@C@A@E?CIGA?GE?CIGA@CF?@ABA@CJ@@GR]Ud@wA\T?@DB?AXP?@DB?A\T
<aymwFnvwbMaAOKCA@OKPk@CCDKAADKAADKAADKAADKAAL_@fBjAIVCCEL
!OohmwFjqwbMg@ADKJYXF@N?FAD
=wnmwfvwbm_@WNg@@@C?C_@UA?AD@?Of@_@UTu@?BK?A?FUVP?@JF?AVP?@JF?AVPGTA?EL@?
=urmwF | swbM u@UFS@@BK?C@C@A@E?CIGA?GE?CIGA@CF?@ABA@CJ@@[GR]Ud@wA\T?@DB?AXP?@DB?A\T
.
这到底是怎么回事?我假设这是一种减小数据大小的方法,但为什么不仅仅依靠浏览器gzip呢
当文件是纯文本时,为什么要使用纯文本扩展名?为什么要有自定义解码器呢?它看起来像是一种自定义编码,使用字节值对坐标/GeoJSON特性进行编码
例如,这一行来自/dist demo/data/building data.txt
:
!GqgmwFrhwbM}C}@@K@IBO@IlBh@BOBMn@PHBGd@KC
使用decodepyline()
实用程序函数对此数组进行解码:
[
[0.00004,0.00001],
[40.70541,0.00002],
[40.7062,-74.01624],
[40.70619,-74.01593],
[40.70618,-74.01587],
[40.70616,-74.01582],
[40.70615,-74.01574],
[40.7056,-74.01569],
[40.70558,-74.0159],
[40.70556,-74.01582],
[40.70532,-74.01575],
[40.70527,-74.01584],
[40.70531,-74.01586],
[40.70537,-74.01605],
[40.70537,-74.01603]
]
它在JSON格式中大得多
因此,我的猜测是,主要原因是能够使用更小的数据文件,这些文件仍然是可移植/可缓存的。它仍然是基于行的明文,所以它也是可扩散的
此外,这些文件仍然是可压缩的。我假设一个完整的JSON文件不仅开始时更大,而且显示出比这个文件更差的压缩特性。对building data.txt
的快速测试显示,gzip/deflate的压缩比大约为2:1(压缩139089字节到72660字节)。原始JSON中同一文件的压缩结果与此相差甚远。可能该数据是由完全不同的系统输出的,他们必须编写JavaScript来解析该输入。不是所有的东西都可以是JSON,你知道。术语“纯文本”是用来与“二进制”相对的。这些数据显然符合这样的定义。使用这种数据格式的真正原因只能由deck.gl的创建者自己解释,如果他们还没有在博客/github页面上解释的话。StackOverflow可能是问错地方了。回答得很好,谢谢!我怀疑这是自定义编码,但不确定。我也不确定。也许他们没有推出自己的,但实现了一些现有的编码方案。decodePolyline()
函数在我看来是定制的,但对此持保留态度。