Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这种编码是什么/为什么这些.txt文件不是纯文本?_Javascript_Browser - Fatal编程技术网

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()
函数在我看来是定制的,但对此持保留态度。