首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#的HttpServerUtility.UrlTokenEncode是否有Java的等效值?

C#的HttpServerUtility.UrlTokenEncode是否有Java的等效值?
EN

Stack Overflow用户
提问于 2016-01-05 13:47:51
回答 2查看 671关注 0票数 2

如何用Java编码将在C#中使用HttpServerUtility.UrlTokenDecode解码的字符串

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-02 17:55:49

下面的方法复制C#功能。

代码语言:javascript
复制
public static String urlTokenEncode(String inputString) {
    if (inputString == null) {
        return null;
    }
    if (inputString.length() < 1) {
        return null;
    }

    // Step 1: Do a Base64 encoding
    String base64Str = new String(java.util.Base64.getEncoder().encode(inputString.getBytes()));

    // Step 2: Transform the "+" to "-", and "/" to "_"
    base64Str = base64Str.replace('+', '-').replace('/', '_');

    // Step 3: Find how many padding chars are present at the end
    int endPos = base64Str.lastIndexOf('=');
    char paddingChars = (char)((int)'0' + base64Str.length() - endPos);

    // Step 4: Replace padding chars with count of padding chars
    char[] base64StrChars = base64Str.toCharArray();
    base64StrChars[endPos] = paddingChars;

    return new String(base64StrChars);
}
票数 1
EN

Stack Overflow用户

发布于 2016-01-09 10:20:28

经过一天的挣扎,这个简单的方法完成了以下工作:

代码语言:javascript
复制
public string ToUnsafeUrl(this string str)
    {
        if (str == null)
            return null;
        return str.Replace("-", "+").Replace("_", "/");
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34613257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档