using System.Drawing.Imaging;
using System.Runtime.InteropServices;
public static void Main()
Console.WriteLine(Reverse("ABCD"));
Console.WriteLine(Reverse("一二三四"));
static string Reverse(string s)
byte[] b = Encoding.UTF32.GetBytes(s);
PixelFormat fmt = PixelFormat.Format32bppPArgb;
using(Bitmap bmp = new Bitmap(1, b.Length / 4, fmt))
var bmpData = bmp.LockBits(new Rectangle(Point.Empty, bmp.Size), ImageLockMode.ReadWrite, fmt);
Marshal.Copy(b, 0, bmpData.Scan0, b.Length);
using (MemoryStream ms = new MemoryStream())
bmp.Save(ms, ImageFormat.Bmp);
return Encoding.UTF32.GetString(bb,54,bb.Length-54);