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 件のコメント:
コメントを投稿