我從一個(gè)jsp接收一個(gè)圖像,轉(zhuǎn)換成一個(gè)字節(jié),然后blob并將其保存在我的數(shù)據(jù)庫(kù)中,在另一個(gè)頁(yè)面上檢索它,當(dāng)檢索圖像時(shí),我得到以下字符串。
'x*??{[?Y?>YE *?????_/???????~%?+y?`??uH????#??\t?????|B??k?-??Z4V?U7?F???m+(?? ? I??pq^?Q???????18?R???-???>0~?sXxCI?;[;t???9?fBX?Bp?A??^M?k? ??G?S?u???????r?U&?w*??8????`??> Y?2?????1?j$??\??DR[??t0? pps?_Ex? ???_o?*?? xV)?6D8?$??!?9??~???N?`???}W?s?gNUf?Mn>?s?3?r?3M???X???Q????N!pr~?W????Mjq5??????2m???8????x??V?????????[???"??*,I?/@s?V?d?B?/?Vb?&R?n|?>??2????)?r??1??%7?Q??^f?R?C?????mvm??%6?K?p??;O?Z?&?????u?????\???R"ZOex???VkE???????_??????K?M@=??o?Z[?[hb?H?V????
我已經(jīng)在這里手動(dòng)減少了。這是我做的標(biāo)簽。
<img src="data:image/jpeg;base64,${img}" width="100" height="100"></img>
我不太確定這里出了什么問(wèn)題,這里是我把文件,并把它變成一個(gè)字節(jié)[],然后是一個(gè)blob。
byte[] byteData = file.getBytes();
Blob blobs = new SerialBlob(byteData);
然后我把它轉(zhuǎn)換成base64字符串。
String base64DataString = new String(byteData , "UTF-8");
System.out.println(base64DataString);
model.addAttribute("img", base64DataString);
如果有人知道如何把這個(gè)字符串轉(zhuǎn)換成一個(gè)普通的base64字符串,可以用來(lái)復(fù)制一個(gè)圖像,那將是非常有幫助的。吉姆
二進(jìn)制數(shù)據(jù)永遠(yuǎn)不應(yīng)該轉(zhuǎn)換成字符串,字符串包含Unicode,主要是UTF-16個(gè)字符,每個(gè)字節(jié)花費(fèi)2個(gè)字節(jié)(一個(gè)字符),轉(zhuǎn)換需要時(shí)間,可能會(huì)出錯(cuò)。