因為在做一個聊天軟體,發現使用者回饋說收到的圖片顯示亂碼,如下:
MediaItem{mOriginalPath='/storage/emulated/0/Pictures/Screenshots/Screenshot_xxxxxx.jpg', mThumbPath='', origId=46907, generateDate=1690439895000, dateTag=null, isChecked=false, mMimeType='image/jpeg', mLongitude='181.0', mLatitude='91.0', mBusinessTag='null'}
看資料庫這條訊息存的是文字格式,非檔案格式。我以為是什麼檔案關鍵字導致發送方發送圖片失敗,直接把本地拼接的 JSON 發送到伺服器上了呢。後來不對,這格式和我 APP 圖片的格式沒有任何關係啊!甚至這些關鍵字都不在我的系統內。遂上網搜索,結果不搜不知道,原來很多平台都存在相同格式的文字,幾乎一致是發送圖片時出現的,包括但不限於抖音,小紅書,百度貼吧,春雨醫生等(如下列圖片)
然後我第一直覺認為是本地相簿分享導致的,系統拿到的格式不對或者檔案名存在分隔符之類的情況。於是立即排查,但是找不到任何相關的內容。又看了一邊上面的文字資訊,發現其中存在 mLongitude
, mLatitude
,mBusinessTag
,經緯度資訊和商業標籤。一般本地相簿甚至會專門抹除這些資訊,不應該啊。
但是經過我不斷的搜索,還是找到了問題所在,這段字元的拼接程式碼,在多個反編譯微信的倉庫中找到了(資訊來自網路,具體請看圖下連結):
原來是微信發送圖片的時候的拼接格式。
不過如何出現在我們的 APP 和各大 APP 中,確實不知道原因。但是依然可以確定,這是🐉又一次在手機內拉的💩。