节点:将 utf8 字符串转换为 base64 以作为 Parse.com 文件上传
Node: converting utf8 string to base64 to upload as a Parse.com file
我不确定这个问题是针对 Parse.com 还是我对 NodeJS 编码的(基本)理解有问题。
我一直在使用 Parse 上传文本文件 - 这很好用,但看起来文件内容不是 UTF8 编码的(根据我在浏览器中的数据浏览器中看到的)。
在保存文件之前我应该做些什么来确保文本以 unicode 格式存储?
我用来上传的代码是:
//test string
var a = '検索 • Busca • Sök • 搜尋 • Tìm kiếm • Пошук';
//trying to convert to base64
var buff = new Buffer(a, 'utf8').toString("base64");
var parseFile = new Parse.File("test.txt", {
base64: buff
}, 'text/plain');
//saves successfully
parseFile.save().then(function() {
var Test = Parse.Object.extend('Testing');
var uv = new Test();
uv.set('hello', parseFile);
return uv.save(null, {});
}).then(function() {
console.log('Saved');
}, function(error) {
console.error(JSON.stringify(error));
});
当我从数据浏览器查看 test.txt 时,我看到:
検索 • Busca • Sök • æœå°‹ • Tìm kiếm • Пошук
当我尝试使用上面的相同代码通过 require('fs')
保存到磁盘时,一切都按预期工作。
您使用的数据浏览器认为该文件是编码为 Base-64 的 UTF-16 字节(这很容易验证)。你不用担心,数据是正确的,表示是错误的。数据查看器不会更改您的数据,所以没关系。
我不确定这个问题是针对 Parse.com 还是我对 NodeJS 编码的(基本)理解有问题。
我一直在使用 Parse 上传文本文件 - 这很好用,但看起来文件内容不是 UTF8 编码的(根据我在浏览器中的数据浏览器中看到的)。
在保存文件之前我应该做些什么来确保文本以 unicode 格式存储?
我用来上传的代码是:
//test string
var a = '検索 • Busca • Sök • 搜尋 • Tìm kiếm • Пошук';
//trying to convert to base64
var buff = new Buffer(a, 'utf8').toString("base64");
var parseFile = new Parse.File("test.txt", {
base64: buff
}, 'text/plain');
//saves successfully
parseFile.save().then(function() {
var Test = Parse.Object.extend('Testing');
var uv = new Test();
uv.set('hello', parseFile);
return uv.save(null, {});
}).then(function() {
console.log('Saved');
}, function(error) {
console.error(JSON.stringify(error));
});
当我从数据浏览器查看 test.txt 时,我看到:
検索 • Busca • Sök • æœå°‹ • Tìm kiếm • Пошук
当我尝试使用上面的相同代码通过 require('fs')
保存到磁盘时,一切都按预期工作。
您使用的数据浏览器认为该文件是编码为 Base-64 的 UTF-16 字节(这很容易验证)。你不用担心,数据是正确的,表示是错误的。数据查看器不会更改您的数据,所以没关系。