因为在做一个聊天软件,发现用户反馈说收到的图片显示乱码,如下:
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 中,确实不知道原因。但是依然可以确定,这是🐉又一次在手机内拉的💩。