
PHPからjavascriptにバイナリデータ(16バイト程度)を受け渡す
処理を作成しているのですが、うまく動作しないので、相談します。
バイナリデータをエンコードしてPHPからjavascriptに
以下の流れで引き渡しています。
(1)PHPのbase64_encodeでバイナリデータをエンコード
(2)エンコードしたデータをjavascriptに出力
(3)javascriptでデータをデコード
(3)のデコードには次のページのbase64.jsなど、いくつかの
デコード方法を試してみました。
http://www.onicos.com/staff/iz/amuse/javascript/ …
しかしながら(1)の元のデータと(3)でデコードしたデータが
一致しません。
質問したいのは以下の2点です。
・PHPのbase64_encodeとjavascriptのbase64エンコードは
一般的に方式が違うのでしょうか。同じbase64なので
同じコードが生成されると考えたのですが、そうでは
ないのでしょうか。
・base64_encodeでも、その他の方法でもかまわないので
PHPとjavascriptで共通なエンコード方式、あるいは
PHP上のバイナリデータをjavascriptに正しく受け渡す
方法があれば教えて下さい。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
…とりあえず質問に直接答えます。
>・PHPのbase64_encodeとjavascriptのbase64エンコードは
>一般的に方式が違うのでしょうか。
一般も何もありません。Base64はこの世で一つです。言語の違いは関係なく、どの言語でも必ず同じ結果になります。
あなたは期待する結果にならない原因を言語の違いに求めようとしているようですがその可能性はまずありません。あなたのプログラムに間違いがあるのでしょう。その前提で何度も見直しましょう。
どうしても自分では見つけられないという場合には、ソースコードを張りましょう。そしてどのようなデータでうまく行かないのかを明示しましょう。
※個人的には、「バイナリデータ」と言っているのが実はマルチバイトの文字列の事で、サーバ側とクライアント側で文字コードが違ってしまっているだけという初歩的なミスである可能性が高いのではないかと推測します。
この回答への補足
回答を参考にして、いろいろ試している中で新たな
疑問が出てきました。新しく質問をしなおしたの
ですが、今度はテスト用のソースも入れていますので、
よろしければ見ていただけますか。
http://oshiete.goo.ne.jp/qa/8517290.html
No.2
- 回答日時:
「PHPの結果とJavaScriptの結果が異なる」というのはJavaScriptが間違っているという事ではありません。
PHPの動作が期待通りでなくても、同様にPHPとJavaScriptで異なる結果になります。
2カ所での動作が違うという事は、どこかに設計ミスや作成にミスがあるからです。
2度目の回答をいただいて、ありがとうございました。
設計ミスや作成にミスがあるのではということでしたので
処理を調べている内に新たな疑問が出てきました。
新しく質問をしなおしましたので、よろしければ見て
いただけますか。
http://oshiete.goo.ne.jp/qa/8517290.html
No.1
- 回答日時:
私もバイナリデータのBASE64変換は高度なJavaScript技集のライブラリを使わせてもらっています。
いくつかライブラリがありますが、私が調べた中では、唯一バイナリデータに対応していましたので。
本当にデコードが原因ですか?
データが破損する可能性は何カ所かあります。
それら全てをチェックして、破損していないことを確認してください。
・PHPのデータ入力時(ファイル読み込みなど)
・PHPのエンコード時
・PHPからの送信時
・PHPの確認用データ保存時
・JavaScriptの受信時
・JavaScriptのデコード時
・JavaScriptの出力時(画面描画など)
データが破損する可能性がある箇所はおそらくもっとあると思いますが、
1カ所でも破損が確認できれば、それが原因です。
この回答への補足
データが破損している可能性が何箇所かであるということですが、
それぞれの処理結果を出力して確認しデコード部分でデータの
不一致が起こっていることがわかっています。
そのためPHPとjavascriptのエンコード・デコードの処理に
ついて質問しています。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでサーバの時間を取...
-
JavaScriptでダウンロード
-
imode用ホームページ
-
PHP4とpostgreSQLについて
-
JavaScriptで掲示板
-
都道府県→沿線→駅のドリルダウ...
-
ASPでグラフ表示方法
-
データベースの値を表示させる...
-
プログラムの時間を計りたい!!
-
CGIのアンケートについて
-
i-modeページで使用可能ですか?
-
PHPができればJavaScriptは...
-
Wordpressでヤフー知恵袋やgoo...
-
フォルダを自動で開く
-
この言葉おしえて!
-
誰か知ってますか?
-
チェックボックスを認識・不認...
-
NetscapeCommunicator4.7でJava...
-
ネットスケープ6を簡単に判別...
-
onbeforeunload と aタグの hre...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptを使用して、クライ...
-
JavaScriptの負荷について
-
覚えるべき言語は何ですか?
-
IEでalertのみを無効にする方法...
-
画面遷移時にデータを次のペー...
-
JavaScriptでデータファイル読...
-
Session切れ前にWarningメッセージ
-
プルダウンリストを作りMySQLか...
-
セレクトで都道府県から市区町...
-
外部リンクのクリック数を表示...
-
PHPができればJavaScriptは...
-
javascriptをつかって売上管理
-
仮アップ?
-
PHPとjavascriptで共通なエンコ...
-
ファイルサイズの取得
-
CGIとJavascriptの違いについて
-
Plupload(jqueryプラグイン)に...
-
レーダーみたいなものがほしい。
-
PDFにリンク組み込み
-
GoogleMap, Ajaxについて
おすすめ情報