Base64 -> UTF-8 - Twitter bot

0

Robię bota na Twittera, który postuje zdjęcia z opisem (zwykły tekst).

Używa kodowania base64 co sprawia, że polskie litery ąćźżółę w tweetach są widziane jako: ���.

Zwykłe konwertowanie Stringa z tymi znakami do base64 nie pomaga, ponieważ tweety są wtedy wysyłane i widziane jak coś w tym stylu: UGllcndzemUgemRq77+9Y2llI...

Czy można to jakoś poprawić?

Dopiero zaczynam z node.js

Kod:

var Twit = require('twit'); 
var config = require('./config');
var T = new Twit(config); 
var fs = require('fs'); 
tweetIt(); 
function tweetIt() {         
    processing() 
    function processing() { 
        var filename = 'file/image.jpg'; 
        var params = {             
            encoding: 'base64' //UTF-8? 
        }; 
        var b64 = fs.readFileSync(filename, params);          
        T.post('media/upload', { media_data: b64 }, uploaded); 
        function uploaded(err, data, response) { 
            var id = data.media_id_string; 
            var tweet = {                 
                status: 'Zażółć gęślą jaźń', //UTF-8?                 
                media_ids: [id] };             
            T.post('statuses/update', tweet, tweeted); } 
        function tweeted(err, data, response) { 
            if (err) {                 
                console.log('Something went wrong!'); } 
            else {                 
                console.log('It worked!'); } 
            } 
        } 
}

0

Base64 istnieje właśnie po to, żeby móc przekazywać dowolne dane bez ich psucia. Podejrzewam, że już na wejściu wysyłasz dane w niewłaściwym kodowaniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1