質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

1回答

873閲覧

[node.js]base64エンコードで想定している文字列が返ってこない

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2017/09/14 09:41

わかりにくいタイトルで申し訳ないです。

現在pythonコードで書いたプログラムを勉強がてらNode.jsで書いているのですが
(具体的には指定のurlから画像を取ってきてbase64に変換するプログラム)

pythonでは

python

1import base64 2 3rawImg = requests.get(url, headers=headers).content # 画像を取ってくる 4encImg = base64.b64encode(rawImg) #base64に変換する 5 6print(encImg)

で上手くいったのでNode.jsで下記コード(稚拙なコードで申し訳ないです)

js

1const request = require('request'); 2 3var headers = { 4 // something 5} 6 7var options = { 8 url: "http://example.com/something.png", 9 method: 'GET', 10 headers: headers, 11 json: true 12}; 13 14request(options, function(err, res, body) { 15 var rawImg = new Buffer(body, 'ascii'); 16 var encImg = rawImg.toString('base64'); #base64に変換 17 console.log(encImg); #encImgを出力 18});

で再現できたと思ったのですがpythonとは違う内容で返ってきてしまい、困惑しています。
文字コードが違うのかとも考えて色々やってみましたが上手くいかず...

ご指南を頂ければと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

js

1var options = { 2 url: "http://file.fyicenter.com/a/sample.png", 3 method: 'GET', 4}; 5 6request(options, function (error, response, body) { 7 if (!error && response.statusCode == 200) { 8 data = new Buffer(body).toString('base64'); 9 console.log(data); 10 } 11});

これでいかがでしょう?

投稿2017/09/14 09:53

tgfjt

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/14 10:02

回答ありがとうございます。どうやらダメなようですね...
tgfjt

2017/09/14 10:06

ダメな具合や、どういった `body` なのか?を伝えてもらえると想像しやすいのですが〜
退会済みユーザー

退会済みユーザー

2017/09/14 10:14

分かりづらくて申し訳ないです! .pngをgetしているのでbodyは.png自体です。
退会済みユーザー

退会済みユーザー

2017/09/14 11:03

ご丁寧にありがとうございます!自己解決しました。やはりエンコーディングの問題だったようで requestするときのoptionsに `encoding: null` で解決しました!
tgfjt

2017/09/15 00:50

おめでとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問