none
BASE64编码/解密 的问题 RRS feed

  • 问题

  •  public static string DecodingString(string Base64String, System.Text.Encoding Ens)
        {
            return Ens.GetString((Convert.FromBase64String(Base64String)));
        }
        public static string DecodingString(string Base64String)
        {
            return DecodingString(Base64String, System.Text.Encoding.Default);
        }
    以上是我从网上找的代码:

      我的本意是一个字符串,是加密的;通过调用上面的函数之后,它应该还原为原来的字条串;


     当我调用时,我发现如果是英文的话,是正常的,若是中文的话;就会出现乱码;这是为什么呢?
    大其心,可容天下之物; 虚其心,可受天下之善;
    2009年12月15日 6:56

答案

  • Base64就是 从零开始以升序排列的以 64 为基的数字为大写字符“A”到“Z”、小写字符“a”到“z”、数字“0”到“9”以及符号“+”和“/”
    你用UTF8是可以的,同时i保证编码都一直

    private static void TestBase64()
            {
                string oldString = "this is a sentence that contains Chinese Characters \"我是汉字\"";
                Console.WriteLine(oldString);

                byte[] base64Bytes = Encoding.UTF8.GetBytes(oldString);
                string base64String = Convert.ToBase64String(base64Bytes);
                Console.WriteLine(base64String);

                byte[] bytes = Convert.FromBase64String(base64String);

                string newString = Encoding.UTF8.GetString(bytes);
                Console.WriteLine(newString);
                Console.ReadLine();
            }


    输出

    this is a sentence that contains Chinese Characters "我是汉字"
    dGhpcyBpcyBhIHNlbnRlbmNlIHRoYXQgY29udGFpbnMgQ2hpbmVzZSBDaGFyYWN0ZXJzICLmiJHmmK/m
    sYnlrZci
    this is a sentence that contains Chinese Characters "我是汉字"


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~

    • 已标记为答案 lfofiug 2009年12月16日 1:11
    2009年12月15日 7:55
    版主