当使用库请求一些非 ASCII/UTF8 数据时,我们经常会得到一个充满废话的字符串。例子:
const got = require("got");
got("http://twemoji.maxcdn.com/16x16/1f525.png")
.then(response => console.log(response.body))
这是输出:
�PNG
IHD��aaIDAT8�c`��L�fEb��?��8�-���@���5�!� ���|bQ\�$�� �ׁX�y�xT
���y@< �c�i��6$�K$
L÷���w��������_��Ϡ���d��?�j��2��� ��hX��cn������e"L����x�3�
��Y�f�N���
mt:����2e�f��N���~{'̀x�ȿ �;�m
�
�PIEND�B`� �vZ�]�dX<R�\�Y:������`�A�A��ӂƟ}�����#A�\�n����|�A� u83����,�{������@�@4��#��D�
奇怪的是,这与我们在下载图像和使用时看到的相同:
cat 1f525.png
那个字符串到底是什么,为什么它看起来像这样,以及我们如何将它转换为适当的 Buffer 对象?