java - Base64 编码字符串不匹配

标签 java android encoding base64

我很沮丧。我有一个基本的 Http 授权。为此,我设置了一个 HttpGetHeader。 此 Header 需要进行 Base64 编码。我是这样做的:

String acc = uname + ":" + pword;
byte[] a = acc.getBytes();
String header = "Basic " + new String(Base64.encode(a, Base64.DEFAULT));

但是这个编码的字符串不起作用。当我记录标题时,它会打印出我需要的内容。 它看起来与 String h = "Basic c2NodWsZXI6aGVpbmNA=="; 相同,这是有效的。 但是当我比较 header.equals(h);header==h 时,它们都是 false。 最后,当我将 header 设置为 header 时它不起作用,但是当我使用 h 时它起作用了。我猜它与字符串编码有关,但我尝试了 .getBytes("UTF-8") 和类似(ASCII,UTF-16)的不同方式,但它们都不起作用。 用户名和密码为普通字符和数字。

谁能看出错误?谢谢 格雷维乌斯

最佳答案

header.equals(h) 返回 false 表示字符串不相同。 header==h 应返回 false,因为它们不是相同的引用。

也许是空白?试试 header.trim().equals(h.trim())

关于java - Base64 编码字符串不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439027/

相关文章:

java - 将 jars 添加到 java webapp

java - 在 Android 上加载数据时显示旋转轮对话框

android - 以编程方式添加线性布局

android - 我无法更改我的 AlertDialog 主题

java - Android:下载的图像未显示在 ListView 中

java - 使用 AES/ECB/PKCS5Padding 加密时无法解密 - 输入长度必须是 16 的倍数

java - 找不到符号类 "Builder"

cocoa-touch - NSString 方法对 URL '&' 进行百分比转义

mysql - utf8mb4_0900_ai_ci 是 MySQL 8.0.30 中通用的良好排序规则吗?

java - apache Camel 邮件中的主题 header 显示日语字符为 "=?iso-2022-jp.. "