
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で質問しましょう!
似たような質問が見つかりました
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- JavaScript Wordpressでヤフー知恵袋やgoo質問のような回答ページを作成したいです 4 2023/06/02 22:38
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- WordPress(ワードプレス) WordPressのサイトをオリジナルテーマで作るならHTML、CSS、JavaScript、PHP 1 2022/06/03 15:18
- JavaScript JAVASCRIPT 1 2022/04/13 09:40
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) プログラミング言語 1 2022/07/02 10:39
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部リンクのクリック数を表示...
-
VBA ステータスバー DoEvents
-
デザイン時のVisible=Falseは実...
-
C#でボタン名を変更しても動く
-
JavaScript(ライブラリ)のキ...
-
VB.NET2003 テキストボックスに...
-
以下のコードを実行しても、オ...
-
正整数の半角数字かどうか判定する
-
JavaScriptでショートカットキ...
-
リクエスト結果が一瞬しか表示...
-
if(1){...}とはどういうことで...
-
VC#でテキストボックスに変数の...
-
javascript で外部サイトにデー...
-
エクセルVBA/ Formatで文字列が...
-
JSPの処理の途中で、JavaScript...
-
JSON形式でのページング処理に...
-
Ajaxが動きません~『status=0』?
-
TinyTableというスクリプトのソ...
-
マウスムーブでのマウスカーソ...
-
IE8開発者ツールでソースの修正
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Session切れ前にWarningメッセージ
-
JavaScriptを使用して、クライ...
-
JavaScriptの負荷について
-
詳しく解説お願いします
-
csv2tableのテーブルを動的に変...
-
3次方程式の実数解をニュートン...
-
リアルタイム表示ホームページ...
-
PHPとjavascriptで共通なエンコ...
-
検索フォームにサジェスト機能...
-
FlashとJavaScriptで掲示板
-
imode用ホームページ
-
JSONPの使い方について詳しい方...
-
javascriptでサーバの時間を取...
-
チェックボックスのチェックの...
-
仮アップ?
-
CSJSとSSJSの違い
-
ブログの更新情報を取得してHP...
-
独自の検索エンジンを作るには!?
-
画面遷移時にデータを次のペー...
-
JavaScriptでダウンロード
おすすめ情報