画像などのバイナリデータや日本語の文字列をhttpで送るときに、
base64 にする話。 私は UTF-8 の文字列をXML の中に入れて送りたかったんだけど、 それで base64 したかったのね。 いろいろ実装している人がいるけど、 最近の Firefox なら btoa をそのまま使えばOK。 最初こんな風にしてみた。 window.btoa("あ"); でもこれだとこんな例外が発生する。 uncaught exception: なんでやねん? と思ったら、ここに理由が書いてあった。 さすが dankogai。 javascript - Yet Another Base64 transcoder (404 Blog Not Found) 引数に/[^\x00-\xFF]/な文字が入っているとUncaught Exceptionになる へぇ。 そこで、こうしてみたら成功。 window.btoa("¥xE3¥x81¥x82"); そうだったのか。 じゃ btoa は、 UTF-8 の文字を「1バイトずつ」じゃなくて「1文字ずつ」読んでるんだな。 気が利かないのう…。 なわけで、困ったら、上記 dankogai 謹製の utob をかませるとか、 同じく謹製の Base64.encode(str) ってやるといいよ!
by xiaoxia
| 2008-07-10 12:23
| プログラム言語
|
カテゴリ
以前の記事
2022年 12月 2021年 05月 2019年 12月 2018年 12月 2018年 05月 2018年 03月 2017年 03月 2017年 02月 2016年 08月 2016年 04月 more... 最新の記事
最新のトラックバック
ライフログ
今読んでる
その他のジャンル
記事ランキング
ブログジャンル
|
ファン申請 |
||