
Base64でエンコードした後の文字列が思った通りになりません。
C言語とPHPの双方で、
ファイルをBase64でエンコード・デコードしたいと考えています。
PHPにはbase64_encode関数がありますのでこれを利用しますが、
C言語には無いようなので関数を自作することにしました。
以下を参考に、fopen関数を使用して画像をバイナリ形式で読み込み、
エンコードすると以下の文字列が出力されました。
http://www.dokidoki.ne.jp/home2/usui/itmemo/020. …
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgABgAHAwERAAIRAQMRAf/EAFMAAQAAAAAAAAAAAAAAAAAAAAYBAQAAAAAAAAAAAAAAAAAAAAAQAAIDAAIDAAAAAAAAAAAAAAIEAQMFFAYAEhMRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AGiejln2xpJzNeq6DVyCwNJWNrnWafxQlgaSoaNuXJI3IYgVgtH0YkjIic8D/9k=
しかし、PHPのbase64_encode関数で同様の画像をエンコードすると、
以下の文字列が出力されました。
<?php
$data = base64_encode("\xFF\xD9\xFF\xD8".file_get_contents('sample.jpg'));
echo $data;
?>
/9n/2P/Y/+AAEEpGSUYAAQIAAGQAZAAA/+wAEUR1Y2t5AAEABAAAADwAAP/uAA5BZG9iZQBkwAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH//AABEIAAYABwMBEQACEQEDEQH/xABTAAEAAAAAAAAAAAAAAAAAAAAGAQEAAAAAAAAAAAAAAAAAAAAAEAACAwACAwAAAAAAAAAAAAACBAEDBRQGABITEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwBono5Z9saSczXqug1cgsDSVja51mn8UJYGkqGjblySNyGIFYLR9GJIyInPA//Z
どう見ても双方の結果が異なってしまうのですが、原因がわかりません・・・。
何か形式が異なるのでしょうか?
もし原因がお分かりになる方がいらっしゃれば、教えていただければ助かります。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
PHPはあまり知らないですが
"\xFF\xD9\xFF\xD8".file_get_contents('sample.jpg')
これだと、ファイルの前に"\xFF\xD9\xFF\xD8"の4Byteが付加されて、BASE64変換されてしまうように思うのですが。
ご回答ありがとうございます。
仰るとおりでした・・・!
そのままコピーしてきたものを使用していたために、
そしてC言語の方ばかりを見ていたために気づかなかったです(汗)
ご指摘いただいた文字列を取り除いたところ、一致しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- JavaScript JavaScript?jQuery?で書き方を教えてください。 初心者です。 AAAという要素をステ 2 2023/08/04 22:09
- 妊娠 胸がAAAやAAの女性でも妊娠したらB、Cくらいになるのでしょうか? 4 2022/09/12 21:14
- 教えて!goo ★ AA→AAA このハードルが高くないですか? 8 2022/11/29 17:53
- 教えて!goo 12日ですが、もう、S,AAA,AA,Aランクのユーザー様は、どなたなのでしょうか。 3 2023/02/12 08:20
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
-
VC++でUTF-8のファイルを出力し...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
二次元配列をクリップボードに...
-
重複チェックプログラム
-
ファイルの文字コードをUTF-8に...
-
SendKeys "^V", True(貼り付け...
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
AccessVBA複数レポート条件毎に...
-
ファイルI/O完了待ち
-
テキストファイルに改行コード...
-
CSVに書き出すVBSとHTA
-
MATLABのCSV形式での書き込みに...
-
Accessでのレポート印刷待機方法
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C言語のローカル変数初期化に...
-
stdin,stdoutについて
-
windowsでテキストファイルの比...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
ファイルの文字コードをUTF-8に...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
BitBltについて。
-
Wordマクロで指定したフォルダ...
-
ファイル形式またはファイル拡...
-
CSV形式に変換
-
テキストファイルに改行コード...
-
C++ fprintf_sの使い方がわからん
-
外国語とCSVについて
-
1行ずつではなくまとめてファイ...
-
pcap形式データをテキストへ抽出
-
重複チェックプログラム
-
AviUtlでAVI出力が途中までしか...
-
CBool関数について VB6とVB.net...
-
標準出力とファイルに効率的に...
おすすめ情報