首页 > 解决方案 > 如何在 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));
}

标签: javaandroidbase64

解决方案


推荐阅读