如何将包含UTF-8编码文本的BinData对象转换为字符串?
我正在使用MongoDB shell(mongo
命令)。它基本上是Javascript交互式控制台(我认为它是SpiderMonkey),但是没有像Node.js中的Buffer
对象可以与BinData对象提供的十六进制或base64格式一起使用。
最佳答案
我可以使用从BinData到十六进制的转换,然后解析十六进制字符串。
function hex2a(hexStr) {
var s = '';
for (let i=0; i<hexStr.length; i+=2)
s += String.fromCharCode(parseInt(hexStr.substr(i, 2), 16));
return s;
}
hex2a(BinData(0,"aGVsbG8=").hex())
// returns "hello"
但这仅适用于ASCII。