Android端Base64解码表情emoj乱码

news2024/11/25 1:56:31

一、背景:H5端用户评论中包含表情包,通过JSBridge 传递给客户端,Android Base64解码之后,显示乱码(是菱形+问号)。小程序和iOS可以正常解码出表情。用Base64在线编码解码(Base64 在线编码解码 | Base64 加密解密 - Base64.us)也可以解码出表情包。

二、逻辑梳理:H5端获取到用户的评论之后,转json,Base64编码。

Android:获取到H5端传过来的字符串之后,Base64解码,解码出来的表情包乱码,小程序和iOS可以正常解码出表情。

附:Android Base64解码用的是 org.apache.commons.codec.binary.Base64

三、尝试的办法:都不行,都失败了。

1、编码格式

a、GB2312

b、UTF-8

c、UTF-16

2、Base64 的类

a、android.util.Base64

b、org.apaches.commons.codec.binary.Base64

c、java.util.Base64

3、其他解码库

a、StringEscapeUtils::unescapeJava

库implementation 'org.apache.commons:commons-lang3:3.4'

b、Base64

库 Apache commons codec

Android日常开发(23)Android使用commons-codec 进行编码和解码操作java.lang.NoSuchMethodError: No static method_android之commons-codec_像一只小蜗牛的博客-CSDN博客

四、最终解决办法:(可行的)

第一步、H5端在获取到用户评论的信息之后,先转Unicode ,再进行json,Base64。

第二步、Android端获取到H5端传过来的字符串之后,Base64解码,此时对应的用户评论信息是unicode码。Android再进行unicode解码,OK了。可以正常显示表情包了。

Android端

Base64解码工具:org.apache.commons.codec.binary.Base64

Unicode解码工具参考下面的大佬

参考大佬的博客:android如何将字符串\u67e5\u8be2\u6210\u529f转换成中文_android unicode转中文_鸟儿不吃草的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中项系统集成项目管理2023上半年真题及解析

中项系统集成项目管理2023上半年真题及解析 上午题1. 在 (1) 领域,我国还远未达到世界先进水平,需要发挥新型举国体制优势,集中政府和市场两方面的力量全力发展2. ChatGPT于 2022年 11 月 30 日发布,它是人工智能驱动的 (2) 工具3…

Pandas数据分析一览-短期内快速学会数据分析指南(文末送书)

前言 三年耕耘大厂数据分析师,有些工具是必须要掌握的,尤其是Python中的数据分析三剑客:Pandas,Numpy和Matplotlib。就以个人经验而已,Pandas是必须要掌握的,它提供了易于使用的数据结构和数据操作工具&am…

写作业用白光还是暖光?分享专业的读写台灯

现在学生的学习状态用四个字形容“学业繁重”,从上小学开始晚上完成功课到八九点都是再正常不过的事情了,因此学习时的光线环境就很重要,直接影响了视力健康,有一个好的台灯,能很好保护我们的眼睛,还能提高…

快速导入mysql较大的SQL文件

一般情况下,我们的网站或者小项目的数据库文件也就几十兆的大小,使用navicat等可视化工具快速就可以导入成功,但是当我们遇到几百兆或者更大的数据库文件时候,使用这些可视化工具去操作肯定是不可以的,亲测导入时间会特…

分享三款免费好用的远程控制软件!

一、AnyViewer远程桌面软件 AnyViewer是一款免费的远程桌面软件,您可以使用它在家远程控制公司电脑办公,同时您还可以使用它远程传输文件、远程游戏、远程关闭电脑等,并且AnyViewer还具有以下优点: 易于使用&#xf…

大数据安全 | 【实验】凯撒加密与解密

文章目录 📚实验目的📚关于凯撒加密🔥输入任意明文和密钥K10,对其进行凯撒加密;🔥输入密文和密钥K10,对其进行凯撒解密。🔥(暴力)破译密文 📚分析…

GNSS(二):融合策略

文章目录 一、背景二、松耦合融合策略1. 信息有效性判断2. 坐标系对齐3. 观测方程a.杆臂补偿b.速度融合c.位置融合1) 置信度设置 d. 航向yaw融合 4.观测性分析1)状态表示在VIO坐标系下的观测性分析2)状态表示在GPS ENU坐标系下的观测性分析 三、紧耦合融…

linux log日志文件切割 提取时间段 某天 日志

# 将service-23082202.log文件中 2023-09-05 08:00:00 到 2023-09-05 10:00:00 时段内的日志内容提取到20230905.log文件中 sed -n /2023-09-05 08:00:00/,/2023-09-05 10:00:00/p service-23082202.log >> 20230905.log

盘点中国光博会CIOE2023上的国货

一、中国光博会历史地位 CIOE中国光博会首次举办于1999年,经历24年在行业的深耕及拓展,是全球极具规模及影响力的综合型展会,见证了中国光电行业的变化及蓬勃发展。无论是超高清视频领域还是AI应用领域,均属于近年来的热门赛道&a…

软件设计师-UML基础教程

场景 针对UML1.5各种模型图的构成和功能进行说明。 UML概述 UML简介 UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。 适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。 UML的定义包括UML语义和UML表…

C++(day2)

封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数, 提供一个公有成员函数,void setNum(int num)用于设置学生个数 提供一个公有成员函数:void…

【PHP】麻醉临床信息系统

麻醉临床信息系统以服务围术期临床业务工作的开展为核心,为医护人员、业务管理人员、院级领导提供流程化、信息化、自动化、智能化的临床业务综合管理平台。 麻醉信息系统处理的数据包含病人的手术信息、麻醉信息、病人手术过程中从监护仪上采集到的数据和病人情况等…

互联网医院系统|互联网医院探索未来医疗的新蓝海

随着互联网技术的飞速发展,互联网医院应运而生,为人们带来全新的医疗体验。本文将深入探讨互联网医院的开发流程、系统优势以及未来发展方向,带您领略医疗领域的新蓝海。互联网医院的开发流程是一个结合技术、医疗和用户需求的复杂过程。首先…

python可视化记录训练过程

可视化训练曲线 wandb基本流程离线运行wandb保存最佳结果及模型界面 tensorboard基本流程SummaryWriter 所提供的其他方法 wandb 基本流程 安装wandb pip install wandb注册wandb账号 然后在wandb官网注册一个账号,然后获取该账号的私钥。然后在命令行执行&#xf…

无涯教程-JavaScript - AND函数

描述 如果AND函数的所有参数都为TRUE,则返回TRUE;如果一个或多个参数为FALSE,则返回FALSE。 AND功能的一种常见用法是扩展执行逻辑测试的其他功能的用途。如,IF函数执行逻辑测试,如果测试判断为TRUE,则返回一个值,如果测试判断为FALSE,则返回另一个值。通过将AND函…

SkyWalking安装部署

一、概念 1、什么是 APM 系统? APM(Application Performance Management)即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用…

网络安全宣传周|这些网络安全知识赶紧get起来~

2023年9月11日至17日是第十个国家网络安全宣传周。今年的国家网络安全宣传周主题是“网络安全为人民,网络安全靠人民”。 网络安全是国家安全的重要组成部分,没有网络安全就没有国家安全,就没有经济社会稳定运行,广大人民群众利益…

工欲善其事,必先利其器,这5款利器推荐你

​ 工欲善其事,必先利其器。要想提升工作效率,除了提升自己的能力以外,好的工具也是必不可少的一环,今天给大家推荐5款办公必备的神器。 1.鼠标手势增强——MouseInc ​ MouseInc 是一款由知名的浏览器优化大神开发的系统全局鼠…

炒期权的资金门槛是多少 ?

期权是一种合约,买方向卖方支付一定费用后有权利在特定的时间,以特定的价格买入或卖出一定数量的特定资产,卖方需履行相应义务,期权开户支持线上和零门槛开头,下文介绍炒期权的资金门槛是多少 ?本文来自:期…

uniapp打包安卓后在安卓屏上实现开机自启动

实现开机自启动(使用插件) 打开插件地址安卓开机自启动 Fvv-AutoStart - DCloud 插件市场 使用方法 选择你要开启自启动的项目 在项目的manifest.json中app-plus下写入以下代码 注意需要替换 android_package_name 为自己的,不然无法进行安卓apk打包 "nativePlugins&q…