java - 在来自 Android 的 EWS 中将 UID 字符串转换为十六进制数组和 base64 字符串 ItemId

标签 java android hex base64

从这个例子 ( Get the organizer's calendar appointment using EWS for Exchange 2010 ) 我可以从 UID 获取 ID 字符串。但问题是我是用 Android 写的,而不是 C#。所以我需要用相同的方法将字符串转换为十六进制数组和 Java 中的 base 64 字符串。我怎样才能得到它?

  private static string GetObjectIdStringFromUid( string id )
  {
      var buffer = new byte[ id.Length / 2 ];
      for ( int i = 0; i < id.Length / 2; i++ )
      {
        var hexValue = byte.Parse( id.Substring( i * 2, 2 ), System.Globalization.NumberStyles.AllowHexSpecifier );
        buffer[ i ] = hexValue;
      }
      return Convert.ToBase64String( buffer );
  }

示例输入:

00000000F1985146856BD941BA2343776A64673F0700855A223A9715B6468B4D00795E77CAAB00000033E03A0000855A223A9715B6468B4D00795E77CAAB00000034860B0000

输出:

AAAAAPGYUUaFa9lBuiNDd2pkZz8HAIVaIjqXFbZGi00AeV53yqsAAAAz4DoAAIVaIjqXFbZGi00AeV53yqsAAAA0hgsAAA==

最佳答案

如果我没理解错的话,您正在寻找一种将十六进制字符串转换为 Java 中的 Base64 字符串的方法。

这可以通过 Apache Commons Codec 轻松完成图书馆:

String output = new String(Base64.encodeBase64(Hex.decodeHex(input.toCharArray())));

关于java - 在来自 Android 的 EWS 中将 UID 字符串转换为十六进制数组和 base64 字符串 ItemId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172536/

相关文章:

java - 我可以可靠地使用 os.version 值来确定 Linux 发行版吗?

java - Java函数在返回参数时会复制参数传递的数组吗?

android - 如何检测屏幕何时打开?

java - 六角网格上的元胞自动机

c - 为什么大于 x7F 的十六进制编码字符在 printf 函数中显示不同?

java - 类型不匹配 : cannot convert from element type Object to int

java - 单击按钮时如何使用 Action 监听器和其他东西来获取两个文本字段的值

java - 我如何在 Android 上访问相机胶卷/照片?

java - 带有进度对话框android的泄漏窗口错误

java - Apache Commons 十六进制编码错误