using System; using System.Text; public class Test { public static void Main() { Action> act = delegate(string name, Func getEncoding) { string encInfo = null; try { Encoding encoding = getEncoding(); encInfo = string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", new Object[]{ encoding.GetType().Name, encoding.CodePage, encoding.WindowsCodePage, new Func(delegate () { byte[] data = encoding.GetPreamble(); StringBuilder sb = new StringBuilder(); if(data == null) { sb.Append("(null)"); } else { sb.Append(BitConverter.ToString(data).Replace("-", " ")); sb.Append(" "); sb.Append(string.Format("({0})", new object[]{data.Length})); } return sb.ToString(); })(), encoding.EncodingName, encoding.HeaderName, encoding.BodyName, encoding.WebName, }); } catch(Exception e) { encInfo = e.Message; // encInfo = "*************************"; } Console.WriteLine("{0} => {1}", new object[]{name, encInfo}); }; Action acti = delegate(int cp) { act(string.Format("Encoding.GetEncoding({0})", new object[]{cp}), delegate() { return Encoding.GetEncoding(cp); }); }; Action acts = delegate(string name) { act(string.Format("Encoding.GetEncoding(\"{0}\")", new object[]{name}), delegate() { return Encoding.GetEncoding(name); }); }; Action acte = delegate(string name, Encoding encoding) { act(string.Format("{0}", new object[]{name}), delegate() { return encoding; }); }; Console.WriteLine(string.Format("OS: {0}", System.Environment.OSVersion.ToString())); Console.WriteLine(); acti(1252); acti(932); acti(65001); acts("s-jis"); acts("shift-jis"); acts("cp932"); acts("ms932"); acts("windows-31j"); acts("utf-7"); acts("utf-8"); acts("utf-16"); acts("utf-16be"); acts("utf-16le"); acts("utf-32"); acts("utf-32be"); acts("utf-32le"); acts("utf-7n"); acts("utf-8n"); acts("utf-16n"); acts("utf-16ben"); acts("utf-16len"); acts("utf-32n"); acts("utf-32ben"); acts("utf-32len"); acts("ucs-1"); acts("ucs-2"); acts("ucs-4"); acts("S-JIS"); acts("SHIFT-JIS"); acts("CP932"); acts("MS932"); acts("WINDOWS-31J"); acts("UTF-7"); acts("UTF-8"); acts("UTF-16"); acts("UTF-16BE"); acts("UTF-16LE"); acts("UTF-32"); acts("UTF-32BE"); acts("UTF-32LE"); acts("UTF-7N"); acts("UTF-8N"); acts("UTF-16N"); acts("UTF-16BEN"); acts("UTF-16LEN"); acts("UTF-32N"); acts("UTF-32BEN"); acts("UTF-32LEN"); acts("UCS-1"); acts("UCS-2"); acts("UCS-4"); acte("Encoding.Default", Encoding.Default); acte("Encoding.UTF7", Encoding.UTF7); acte("Encoding.UTF8", Encoding.UTF8); acte("Encoding.Unicode", Encoding.Unicode); acte("Encoding.BigEndianUnicode", Encoding.BigEndianUnicode); acte("Encoding.UTF32", Encoding.UTF32); } }