java - 如何在 Java 中使用 Base64 对特殊字符进行编码
问题描述
我正在尝试在 Android 上构建一个使用 Base64 编码的应用程序。创建一个字符串 "\uDE00" 会创建一个 hashCode 为 56832 的对象。使用 Base64 编码和解码这个字符串会创建一个 hashCode 为 65533 的对象。
有没有办法使用 Base64 保留原始字符串?这些值在HashMap中使用,所以代码不能正常工作。
这些是我使用的方法:
私有静态最终字符串CHARSET =“UTF-16”;
private static String encodeToBase64(@NonNull String string) {
return Base64.encodeToString(string.getBytes(Charset.forName(CHARSET)), 0);
}
private static String decodeBase64(@NonNull String string) {
return new String(Base64.decode(string, 0), Charset.forName(CHARSET));
}
解决方案
推荐阅读
- javascript - 使用 Slack API 在消息交互后以用户身份发布
- angular - 将应用程序发布到文件夹时出现 Angular/Schematics 错误
- html - Excel VBA网页下拉列表激活
- makefile - 使用 make -j4 编译项目时出错,但使用 make j1 编译时通过
- python - 用熊猫从excel中读取大量数据
- postgresql - 从远程计算机连接到 localhost PgAdmin 服务器
- python-3.x - 如何在 Fernet 中使用 decrypt_at_time 函数(Python 3.9)
- django - 由于 FOREIGN KEY 约束失败(IntegrityError),Django 反对创建失败
- linux - 使用 autogen 和 cmake 构建时共享 protobuf 库的 SONAME 不一致
- python - Python 代码在尝试处理异常时卡住了