
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ランキング
-
jsonテキストデータの並び替え...
-
jsで質問です。 ボタンが二つ存...
-
スマホ上で、左右スワイプで次...
-
ラジオボタンを複数選択したと...
-
Outlookのアカウントがあるとメ...
-
変数宣言と初期値代入の場所に...
-
Adobe acrobat proでフォームを...
-
初心者です。gulpでコンパイル...
-
階層別の組織図の自動作成について
-
ボタンを押したあとに画像を表...
-
Cookieに保存されない
-
画面遷移を行わずに同一ページ...
-
インスタグラムのapiを利用して...
-
タグを教えてください。
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メニューを外部から呼び出したい
-
会員向けページ アクセス制限
-
Webサイト設計 データの記録
-
HTML5で下記は実現可能でしょう...
-
特定のURLからのアクセスがあっ...
-
教えてください
-
Perl LINE(チャット) 仕組み
-
FlashLiteで通信ゲームを作れま...
-
i-modeページで使用可能ですか?
-
CGIとJavascriptの違いについて
-
数学のjavascript
-
JSONの中でDate.UTCは使えない?
-
最強のオセロ、リバーシ!
-
仮アップ?
-
PHPができればJavaScriptは...
-
Session切れ前にWarningメッセージ
-
ajaxを使用した場合にPHP出力文...
-
javascriptで大きなデータを扱う
-
プログラムの時間を計りたい!!
-
webの文字データの取得
おすすめ情報