эхо BLOB из базы данных (utf-8) - PullRequest
       7

эхо BLOB из базы данных (utf-8)

1 голос
/ 02 сентября 2011

В настоящее время я работаю над веб-приложением с базой данных MysQL utf-8. Есть некоторые изображения, сохраненные в виде больших двоичных объектов, которые мне нужно отобразить.
При всей своей наивности я думал, что это будет что-то вроде этого:

if($image = $result->fetch_object())
{
    header('Content-Type: {$image->mimetype}');
    echo $image->data;
}

Что не работает. Мне показалось, что данные изображения преобразуются в utf-8. Поэтому я подумал, что просто делаю грязный хак, как

echo utf8_decode($image->data);

... опять без удачи.
После этого я удалил вызов header (...), чтобы сравнить двоичный результат с

echo file_get_contents('sameImageAsInDatabase.jpg');

И есть некоторые крошечные различия

file_get_contents (...) - работает:

JØÿàJFIFddÿìDuckyPÿá ¨ http://ns.adobe.com/xap/1.0/ © 2010 Бостонский университет, все права защищены. ! AOA ... W 1AQaq "ð'¡ ± ÁÑ2BRáb # 3ñr, '¢ ²ÂCS $ Òc4sƒ„³% â £ Td5òDÿÚ © Ÿ“²XãÆ6z:?? ¿üWöyíÄTš / _þ + ÿXà¨P0Ž & Y ¬q · + ûõEXªÌ Ss» Qy ¸ * ƒÃªÿ8 * À3ï¯Y «ï? · X¿¿¿œF¡t † G̦'I, ?µ? £ <ÉÒ. = · ¿_¦ˆ <code>º@s-¤Óé p®d¨vÝ — ¿ôÒ6 • E % äú`wÒ9ÇØ × Ç; Čsé ‡ oÒFÅciBÕìxÇÛÝ®ÒÇâ0Òƒ ‡ fX / Û¾¼jsÖêÁâ2t Åí¨q – ǶǶb? @r (ø_fî§jxÌÿ · ¶F¿Ã; 8 ÿÝ¤Ï O ÿ ÿ ª ƒ ƒ ƒ ƒ ƒ 8 ›Μöf ÷ fZŽRÉÿK¹" päso «l; {¸6¶Á嶂òÅçsÔfÔâM # í @ bau · FD {V {zÙüÔ ‡ úGöâýLJ ¦¼¼5Ä‚¿Ê? · R (nùùÜH¤n 'Dnnûù¬ß · P_ ±_II ‰ «7Tÿ¼K_çœF Òl \ ÜÇ« ÛoÛ‚¡ @ 3> _Þ $ ÷ ëoÛˆ¨´Aÿ31ûÌ ™ sÖpUFnn? Ø ™ s <5ŸÛ ‚ƒ> fæŸ ÷ ‰


база данных - не работает:

ÿØÿàJFIFddÿìDuckyPÿá ¨ http://ns.adobe.com/xap/1.0/ © 2010 Бостонский университет, все права защищены. «Принято»? ÿÀÌÙÿÄì! 1AQ "aq? ¡2 # ± ÁÑBRbr ?? 3 $ ðáñ ²²CS% Òc? 4Â? £ ³DT & dt? 5ÃÓ? EU6¤´uu''?? W! 1AQaq" ñ? ± ÁÑ2BRáb # 3ñr ?? ²ÂCS $ Òc4s ?? ³% â £ Td5òDÿÚ © ?? ²XãÆ6z?????? ¿üWöyíÄT / _ þ + ÿXà¨P0 & Y ¬q · + ûõEXªÌ ß »Qy * êÿ8 * À3ï¯Y« ï · X¬¿ñ? Y? F¡t? GÌ|? Я, àμ? £ º@s-¤Óé p®d¨vÝ? ¿ôÒ6? E% äú wÒ9ÇØ×Ç;ÑTsé?oÒFÅciBÕìxÇÛÝ®ÒÇâ0Ò??fX/Û¾¼jsÖêÁâ2t Åí¨q?íǶb?@r (ø_fî§jxÌÿ·¶F¿Ã;8ÿݤÏ??OúX5°¢þÙÇþèßdÿ¥?S ³Û{9Ïå3ñêIÿKªAD%?µöf÷fZ?RÉÿK¹"päso«l;{¸6¶Áå¶?òÅçsÔfÔâM#í@bau·FD ¨V {zÙüÔ?úGöâýLJ ¦¼¼5­Ä?¿Ê?·R(nîùÜH¤n ?Dnnûù¬ß·P¡±suÿÄI_ç?Û?« 7Tÿ¼K_ç?F Òl\ÜÇ?ÙæoÛ?¡@3>_Þ$÷ëoÛ?¨´Aÿ31ûÌ?sÖpUFnn?ø?s<5?Û? ?>fæ?÷?ÍGXÔ? Ü? Ì? Þíûq5aFk © qJüÔ? ×? · Ò? γ ¥ Ä ?? 5Û? © @ MÍ × PiôíÁP нас? 3Ëìó??? ¡@ 1qÿÄKìóÛ? ¤? Ù ?? ÿ¼Iý ûpT ( SCAE $> Vy? lú \

Кто-нибудь знает, что происходит?

1 Ответ

2 голосов
/ 02 сентября 2011

Не выполняйте UTF-кодирование / декодирование - вы имеете дело с двоичными данными, а не с текстовыми данными.Случайно вы, вероятно, получите в результате двоичные последовательности в двоичных данных, которые выглядят как кодовые точки utf, и последовательность кодирования / декодирования повредит ваш файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...