SuperDesign/Source/开发辅助工具/Tools/FrmEncode.cs
2020-11-28 16:15:24 +08:00

259 lines
8.3 KiB
C#

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;
}
}
}
}