如果我尝试对字体文件进行base64编码并将内容输出到如下文本文件:
base64 myfont.woff2 > output.txt
由于字体存储在本地,因此效果很好。但是,如果我尝试从web url和base64卷曲字体输出,则会导致一堆乱码被保存到文件中,例如:
#!/bin/bash
declare -a arr=(
"https://fonts.gstatic.com/s/opensans/v14/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2"
)
for i in "${arr[@]}"
do
content="$(curl -s "$i")"
echo base64 "$content" > output.txt
done
如何让它发挥作用?
答案 0 :(得分:4)
您可以将curl
输出管道传输到base64
:
for i in "${arr[@]}"; do
curl -s "$i" | base64
done > output.txt
答案 1 :(得分:2)
base64
命令期望将文本解码为输入,而不是作为参数。您可以直接管道卷曲:
curl -s "$url" | base64
或者,一旦你在原始代码中捕获了curl导致的变量,请使用here-string:
base64 <<<"$content"