作恶多端的微信在手机内拉的又一坨屎

因为在做一个聊天软件，发现用户反馈说收到的图片显示乱码，如下：

Copy
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 ，经纬度信息和商业标签。一般本地相册甚至会专门抹除这些信息，不应该啊。

但是经过我不断的搜索，还是找到了问题所在，这段字符的拼接代码，在多个反编译微信的仓库中找到了（信息来自网络，具体请看图下链接）：

来源： https://github.com/0jinxing/wechat-apk-source/blob/f75eefd87e9b9ecf2f76fc6d48dbba8e24afcf3d/com/tencent/mm/plugin/gallery/model/GalleryItem%24MediaItem.java#L80

原来是微信发送图片的时候的拼接格式。

不过如何出现在我们的 APP 和各大 APP 中，确实不知道原因。但是依然可以确定，这是🐉又一次在手机内拉的💩。