using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; using WeifenLuo.WinFormsUI.Docking; namespace 开发辅助工具.Tools { public partial class FrmEncode : DockContent { public FrmEncode() { InitializeComponent(); CbbEncodingCode.SelectedIndex = 0; } RyWeb.QuickWeb web = new RyWeb.QuickWeb(); private void AutoCode() { string from_text = TxtFromCode.Text; if (from_text == "") { TxtResultCode.Text = ""; return; } #region 获取编码 Encoding encoding = Encoding.UTF8; switch (CbbEncodingCode.SelectedIndex) { case 0: encoding = Encoding.UTF8; break; case 1: encoding = Encoding.GetEncoding("GBK"); break; case 2: encoding = Encoding.GetEncoding("GB2312"); break; case 3: encoding = Encoding.ASCII; break; case 4: encoding = Encoding.Unicode; break; case 5: encoding = Encoding.BigEndianUnicode; break; case 6: encoding = Encoding.UTF7; break; case 7: encoding = Encoding.UTF32; break; } #endregion if (RbBase64Encode.Checked) { #region Base64加密 try { byte[] bytedata = encoding.GetBytes(from_text); TxtResultCode.Text = Convert.ToBase64String(bytedata, 0, bytedata.Length); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbBase64Decode.Checked) { #region Base64解密 try { byte[] bytes = Convert.FromBase64String(from_text); TxtResultCode.Text = encoding.GetString(bytes); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbURLEncode.Checked) { TxtResultCode.Text = web.UrlEncode(from_text, encoding); } else if (RbURLDecode.Checked) { TxtResultCode.Text = RyWeb.WebDecode.UrlDecode(from_text, encoding); } else if (RbUnicodeToChs.Checked) { #region Unicode转字符串 try { TxtResultCode.Text = Regex.Unescape(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbChsToUnicode.Checked) { #region 字符串转Unicode码 try { TxtResultCode.Text = GetUnicode(from_text); } catch { TxtResultCode.Text = ""; } string GetUnicode(string text) { string result = ""; for (int i = 0; i < text.Length; i++) { //if ((int)text[i] > 32 && (int)text[i] < 127) //{ // result += text[i].ToString(); //} //else result += string.Format("\\u{0:x4}", (int)text[i]); } return result; } #endregion } else if (RbUTF8ToChs.Checked) { #region UTF8转字符串 try { TxtResultCode.Text = RyWeb.WebDecode.Unescape(from_text.Replace("&#x","%u").Replace(";", "")); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbChsToUTF8.Checked) { #region 字符串转UTF8 try { TxtResultCode.Text = RyWeb.WebDecode.Escape(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbMD5.Checked) { #region 获取MD5 try { TxtResultCode.Text = rySafe.MD5Sha1.GetMD5(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbSHA1.Checked) { #region 获取SHA1 try { TxtResultCode.Text = rySafe.MD5Sha1.GetSHA1(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbSHA224.Checked) { #region 获取SHA224 try { //TxtResultCode.Text = rySafe.MD5Sha1.GetSHA224(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbSHA256.Checked) { #region 获取SHA256 try { TxtResultCode.Text = rySafe.MD5Sha1.GetSHA256(from_text); } catch { TxtResultCode.Text = ""; } #endregion } else if (RbSHA512.Checked) { #region 获取SHA256 try { TxtResultCode.Text = rySafe.MD5Sha1.GetSHA512(from_text); } catch { TxtResultCode.Text = ""; } #endregion } } public string get_uft8(string unicodeString) { UTF8Encoding utf8 = new UTF8Encoding(); Byte[] encodedBytes = utf8.GetBytes(unicodeString); String decodedString = utf8.GetString(encodedBytes); return decodedString; } public static string gb2312_utf8(string text) { //声明字符集 System.Text.Encoding utf8, gb2312; //gb2312 gb2312 = System.Text.Encoding.GetEncoding("gb2312"); //utf8 utf8 = System.Text.Encoding.GetEncoding("utf-8"); byte[] gb; gb = gb2312.GetBytes(text); gb = System.Text.Encoding.Convert(gb2312, utf8, gb); //返回转换后的字符 return utf8.GetString(gb); } private void CbbEncodingCode_SelectedIndexChanged(object sender, EventArgs e) { AutoCode(); } private void RbBase64Encode_CheckedChanged(object sender, EventArgs e) { RadioButton chk = (RadioButton)sender; if (chk.Checked) { CbbEncodingCode.Enabled = true; } AutoCode(); } private void RbUnicodeToChs_CheckedChanged(object sender, EventArgs e) { RadioButton chk = (RadioButton)sender; if (chk.Checked) { CbbEncodingCode.Enabled = false; } AutoCode(); } private void RbNoEncoding_CheckedChanged(object sender, EventArgs e) { RadioButton chk = (RadioButton)sender; if (chk.Checked) { CbbEncodingCode.Enabled = false; } AutoCode(); } private void TxtFromCode_TextChanged(object sender, EventArgs e) { AutoCode(); } private void TxtFromCode_DoubleClick_1(object sender, EventArgs e) { ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender; 开发辅助工具.Controls.FrmText frm = new Controls.FrmText { Icon = Icon }; frm.richTextBox1.Text = txt.Text; if (frm.ShowDialog() == DialogResult.OK) { txt.Text = frm.richTextBox1.Text; } } } }