汉字:专家称近期气温以偏低为主,是否“寒冬”不能确定编码:
4e135bb679f08fd1671f6c146e294ee5504f4f4e4e3a4e3bff0c662f5426201c5bd251ac201d4e0d80fd786e5b9a
------------------
请问这个是什么编码,我能得到编码,怎么转成汉字?多谢!

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] b = System.Text.Encoding.BigEndianUnicode.GetBytes("专家称近期气温以偏低为主,是否“寒冬”不能确定");
                Console.WriteLine(string.Join("", b.Select(x => x.ToString("x").PadLeft(2, '0'))));
            }
        }
    }4e135bb679f08fd1671f6c146e294ee5504f4f4e4e3a4e3bff0c662f5426201c5bd251ac201d4e0d
    80fd786e5b9a
    Press any key to continue . . .
      

  2.   


    请问怎么反转?我有unicode,想转成汉字
      

  3.   

    string s = System.Text.Encoding.BigEndianUnicode.GetString(b);
      

  4.   


    我用什么编码转成byte数组呢?GBK?
      

  5.   


    不是告诉你了么,是BigEndianUnicode
      

  6.   


      string unicode = "4e135bb679f08fd1671f6c146e294ee5504f4f4e4e3a4e3bff0c662f5426201c5bd251ac201d4e0d80fd786e5b9a";
                byte[] bytes = Encoding.BigEndianUnicode.GetBytes(unicode);
                var result1 = System.Text.UnicodeEncoding.BigEndianUnicode.GetString(bytes, 0, bytes.Length);你看吧,不行
      

  7.   

    本帖最后由 caozhy 于 2012-12-24 23:11:03 编辑
      

  8.   

    或者using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] bytes = { 0x4e, 0x13, 0x5b, 0xb6, 0x79, 0xf0, 0x8f, 0xd1, 0x67, 0x1f, 0x6c, 0x14, 0x6e, 0x29, 0x4e, 0xe5, 0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x3a, 0x4e, 0x3b, 0xff, 0x0c, 0x66
                , 0x2f, 0x54, 0x26, 0x20, 0x1c, 0x5b, 0xd2, 0x51, 0xac, 0x20, 0x1d, 0x4e, 0x0d,
                0x80, 0xfd, 0x78, 0x6e, 0x5b, 0x9a };
                var result1 = System.Text.UnicodeEncoding.BigEndianUnicode.GetString(bytes, 0, bytes.Length);
                Console.WriteLine(result1);
            }
        }
    }
      

  9.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s = "4e135bb679f08fd1671f6c146e294ee5504f4f4e4e3a4e3bff0c662f5426201c5bd251ac201d4e0d80fd786e5b9a";
                byte[] bytes = Regex.Matches(s, "[0-9a-fA-F]{2}").Cast<Match>().Select(x => (byte)Convert.ToInt16("0x" + x.Value, 16)).ToArray();
                var result1 = System.Text.UnicodeEncoding.BigEndianUnicode.GetString(bytes, 0, bytes.Length);
                Console.WriteLine(result1);
            }
        }
    }
      

  10.   

    我从没考虑过正则去做,这是我要学习的地方
    我通常的转法
                byte[] array = new byte[s.Length / 2];
                for (int i = 0; i < s.Length / 2; i++)
                {
                    string str = s.Substring(i, 2);
                    array[i] =(byte)Convert.ToInt32(str ,16);;
                }
      

  11.   

             byte[] bytes = Regex.Matches(s, "[0-9a-fA-F]{2}").Cast<Match>().Select(x => (byte)Convert.ToInt16("0x" + x.Value, 16)).ToArray();
    从没想过还能有这种写法