読者です 読者をやめる 読者になる 読者になる

Bufferクラスから16進数の文字列を取り出す

APNs=Apple Push Notification serviceを叩いてたら、エラーのコールバックでBufferクラスなるものでtoken が帰ってきた。無知すぎるのでggり、もとのtokenの文字列にしたいんだけど

var token = notification.device['token']
console.log(token.toString('utf8', 0, token.length));

とやったらめっちゃ文字化けしてたのでおかしいな~と思ったら

はじめてのNode.js:Node.js内でバイナリデータを扱うための「Buffer」クラス | SourceForge.JP Magazine

にあるようにutf8じゃなくてhexでとれってさ。

var token = notification.device['token']
console.log(token.toString('hex', 0, token.length));

すると 3fa1327c1e25b58dc351c110d1b55a613168cd6b91a7b911e47ef88ce3XXXXXX みたいな文字列になってちゃんと取れました。