![eyecatch](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPlwXGhQyYQod4EZB2AKCbI63hPeP1l8p8Spwj9I51fQhL8FpmgmKKD3mNHZDl1M-RruLU1bkFvw_ETgQD3Vya8RZ26y-Q1OT0zjxWmorS9hsE_gzoVnY3N5S7Z6IsCLMaoem0xBVhzemcTI5t_Cv1KxIorX9JWG6WOOpF1VOQhZwtEiOQFFgQC1ek/s1600-rw/binary-4942948_1280.jpg)
nase64が便利過ぎて、システム連携の必至フォーマットということに気がついた、ユゲタです。
サーバーでコマンドラインで、とある文字列を打ち込んでいたところ、内包されている文字列でエスケープしなければいけないモノがたくさんある場合、環境に合わせた種類を選定するのもめんどくさい場合は、その文字列をbase64エンコードしてあげると、システムで引っかかりにくい、文字列の出来上がりです。
デコードもかんたんにできるし、大体のシステムで、デコーダも保持しているので、頻度にもよりますが、標準的に使用して、難読化するという事も悪くないと考えました。
でも、今回は、nodejsでそんなbase64文字列を扱った時に、少し戸惑ったので、備忘録としてブログに書いておきます。
本日のIT謎掛け
「base64」と、かけまして・・・
「学ラン」と、ときます。
そのココロは・・・
みんなが理解できる、共通フォーマットです。
Nodejsのbase64のエンコード
normal-stringに格納された、どんな文字列でも、下記のようにすると、base64フォーマットに変換することができます。
var str1 = new Buffer(normal-string);
var str2 = str1.toString('base64');
Nodejsのbase64のデコード
一方、base64データは以下のようにすると、かんたんにデコードできます。
var str1 = new Buffer(base64-string , "base64");
var str2 = str1.toString('ascii');
ただし、この状態では、日本語文字が含まれていると、それは全て文字コード化されてしまうため、webサイトで使う文字列などを扱う場合は、以下のようにする必要があります。
var str1 = new Buffer(base64-string , "base64");
var str2 = str1.toString('utf8');
これだけでOK!!!
参考
NodejsのBuffer機能を知りたい人は、下記のページに詳しく書かれていました。
Node.jsドキュメントからbase64エンコーディングをおさらい
http://robin.hatenadiary.jp/entry/2017/01/08/225337
参考になりました!
0 件のコメント:
コメントを投稿