从这个例子 ( 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/