Firefox和Chromium之间的Uint8Array到字符串转换的区别

时间:2018-07-19 12:02:27

标签: javascript google-chrome firefox uint8array

我正在尝试将二进制数据转换为这样的字符串:

var string = new TextDecoder("utf-8").decode(Uint8Array.from([1, 2, 3]));

当我寻找Firefox中返回的变量string时,它显示了预期的字符串"\u0001\u0002\u0003"

尽管我在Chrome中执行相同的操作,但string返回一个空字符串""

有人可以解释一下发生了什么吗?

1 个答案:

答案 0 :(得分:1)

Chrome控制台呈现不可打印字符的方式与Firefox不同。具体来说,不可打印的字符被渲染为空白方块。尽管如此,字符串还是由适当的unicode代码点组成。

下面的单行代码(很好...)创建/Users/User/Documents/Folder/projectname/utils/configs/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json)渲染。

import numpy as np
import matplotlib.pyplot as plt

#function to draw pie charts on map
def draw_pie(ax,X=0, Y=0, size = 1500): 
    xy = []; s=[]
    start = 0.0 
    ratios=[1/12.]*12
    for ratio in ratios:
        x = [0] + np.cos(np.linspace(2*np.pi*start,2*np.pi*(start+ratio))).tolist() #30
        y = [0] + np.sin(np.linspace(2*np.pi*start,2*np.pi*(start+ratio))).tolist() #30

        xy1 = np.column_stack([x, y])
        s1 = np.abs(xy1).max()

        xy.append(xy1)
        s.append(s1)
        start -= ratio

    for xyi, si in zip(xy,s):
       ax.scatter([X],[Y] , marker=(xyi,0), s=size*si**2, edgecolor="k")

fig, ax = plt.subplots() 

X,Y=166,50 
draw_pie(ax,X, Y,size=3000)

plt.show()

测试:

\u...