首页 > 其他分享 >字符串转16进制,16进制转Base64 哈哈哈 uf65/rn+

字符串转16进制,16进制转Base64 哈哈哈 uf65/rn+

时间:2023-09-23 19:14:21浏览次数:30  
标签:string uf65 16 res str byte 进制

测试:

哈哈哈 uf65/rn+

场景描述:

对接java接口,字符串转16进制再转base64;遇到转换不一样问题;后来定位对方编码格式不对;

 

  private void Test()
        {
            string str = "哈哈哈";
            str = GetHexByString(str, Encoding.GetEncoding("GB18030"));//Encoding.GetEncoding("GBK")
            string eee = GetBase64By16Str(str);
        }

       
        /// <summary>
        /// 字符串转16进制通过
        /// </summary>
        /// <param name="str"></param>
        /// <param name="encode"></param>
        /// <returns></returns>
        public string GetHexByString(string str, Encoding encode)//StringToHexString
        {
            byte[] b = encode.GetBytes(str);
            StringBuilder result = new StringBuilder();
            for (int i = 0; i < b.Length; i++)
            {
                result.Append(Convert.ToString(b[i], 16));
            }
            return result.ToString();
        }


        /// <summary>
        /// 字符串转Base64
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string GetBase64By16Str(string str)
        {
            try
            {

                System.Text.RegularExpressions.MatchCollection mc = Regex.Matches(str.ToString().ToUpper(), "[a-fA-F0-9]{2}");
                byte[] bytes = new byte[mc.Count];
                for (int i = 0; i < mc.Count; i++)
                {
                    bytes[i] = byte.Parse(mc[i].Value, System.Globalization.NumberStyles.HexNumber);
                }
                string res = Convert.ToBase64String(bytes);
                //解决特殊编码问题
                //res = System.Web.HttpUtility.UrlEncode(res);
                //string res =res.Replace("%", "").Replace(",", "").Replace(" ", "+");
                return res;
            }
            catch (FormatException)
            {
                //转换失败
                return null;
            }
        }

 

标签:string,uf65,16,res,str,byte,进制
From: https://www.cnblogs.com/yuanshuo/p/17724911.html

相关文章

  • [COCI2016-2017#4] Osmosmjerka 题解
    [COCI2016-2017#4]Osmosmjerka题解我们发现对于每个点,只有八个方向,也就是说,最终能得到的字符串只会有\(8nm\)个,那我们可以考虑把这些字符串的哈希值求出来,相同的哈希值代表选到相同字符串的一种可能,直接统计即可。现在的问题就在于,怎么快速地求出这\(8nm\)个字符串的哈希......
  • 【十分钟一个知识点】进制
    本周我们将介绍二进制、八进制、十六进制(当然还有十进制)进位计数制将数字符号按序排列成数位,并遵照某种由低位到高位的进位方式计数表示数值的方法,称作进位计数制。十进制D先来复习一下,我们从小学到大的十进制十进制计数制由0、1、2、3、4、5、6、7、8、9共10个数字......
  • 题解 ARC165F【Make Adjacent】
    区间排序问题,主席树优化建图,最小字典序拓扑排序(priority_queue)problem给定一个长度为\(n*2\)的序列,其中每种元素恰好出现了2次。允许每次选择任意两个相邻的元素交换。那么必定存在一个最小\(k\):使得\(k\)次交换以后所有相同的元素都是相邻的。问恰好操作\(k\)次后,......
  • 双通道3G/14bit采集+双通道12.6G/16bit回放卡
    UDFMC-704 双通道接收+双通道发射FMC模块满足VITA57.1单宽、导冷规范。模块ADC支持进口AD9689-2000、AD9689-2600、AD6688、AD9208或国产GMS018采集芯片,DAC支持AD9171/AD9172/AD9173/AD9174/AD9175/AD9176回放芯片,输入支持直流或交流耦合方式,输出支持选配放大器。FMC子卡还支持......
  • 算法题——定义一个方法自己实现 toBinaryString 方法的效果,将一个十进制整数转成字符
    用除基取余法,不断地除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。privatestaticStringtoBinaryString(intnumber){StringBuildersb=newStringBuilder();while(true){if(number==0)break;intyushu=num......
  • P6667 [清华集训2016] 如何优雅地求和 -Binomial Sum
    题面有一个多项式函数\(f(x)\),最高次幂为\(x^m\),定义变换\(Q\):\[Q(f,n,x)=\sum_{k=0}^{n}f(k)\binom{n}{k}x^k(1-x)^{n-k}\]现在给定函数\(f\)和\(n,x\),求\(Q(f,n,x)\bmod998244353\)。出于某种原因,函数\(f\)由点值形式给出,即给定\(a_0,a_1,⋯,a_m\)共\(m+1\)个......
  • 自我介绍102101631
    自我介绍我叫陈康杰,学号是102101631我来自fzu我平常喜欢看一些历史文我最喜欢的歌手是周杰伦我最喜欢的歌曲是《一路向北》食堂里我最喜欢的是烤盘饭(虽然每次吃饱都花了很多的币)......
  • P7916 [CSP-S 2021] 交通规划 sol-最短路+环形dp
    P7916[CSP-S2021]交通规划solStatement传送门Solution好题。发现\(k\le2\)的分值非常多,于是我们考虑从\(k=2\)入手。颜色相同就不用说了,直接染成同一种颜色就行了。我们考虑其他情况,就是颜色不相同的情况,我们一定是找了一条路径把这个图给切开了就像这个样子。......
  • 如何在win10系统中安装vmware16虚拟机安装教程
    ###回答1:以下是VMware16虚拟机安装教程Win10的步骤:1.首先,下载并安装VMware16软件。2.打开VMware16软件,点击“新建虚拟机”。3.选择“典型(推荐)”模式,点击“下一步”。4.选择操作系统类型和版本,这儿选择“MicrosoftWindows”和“Windows10x64”,点击“下一步”。5.输入虚拟机名称和......
  • C语言学习-- ~ 按二进制取位 前置后置++ 关系操作符 逻辑操作符
    #include<stdio.h>//~按二进制取位intmain(){inta=10;intb=~a;/*~按二进制取位如101--~=010*/printf("%d\n%d\n",a,b);/*运行a=10b=-11在二进制里的最高位表示符号位,0为正1为负(3=000…………011)源码......