------ #### SuperDesign V2.0.2301.2101 - *.[新增]新增API编辑器,自动保存和快速插入修改参数。 - *.[改进]使用新款高亮编辑器。
359 lines
11 KiB
C#
359 lines
11 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Windows.Forms;
|
|
using System.Xml;
|
|
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 (RbBigToSmall.Checked)
|
|
{
|
|
#region 大写转小写
|
|
try
|
|
{
|
|
TxtResultCode.Text =from_text.ToLower();
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbSmallToBig.Checked)
|
|
{
|
|
#region 小写转大写
|
|
try
|
|
{
|
|
TxtResultCode.Text = from_text.ToUpper();
|
|
}
|
|
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
|
|
}
|
|
else if (RbJsonToXML.Checked)
|
|
{
|
|
#region JSON=>XML
|
|
try
|
|
{
|
|
string json1 = @"{
|
|
""?xml"": {
|
|
""@version"": ""1.0"",
|
|
""@standalone"": ""no""
|
|
},
|
|
""root"":" + from_text + "}";
|
|
System.Xml.XmlDocument doc1 = JsonConvert.DeserializeXmlNode(json1);
|
|
TxtResultCode.Text = formatXml(doc1);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
}
|
|
private static string formatXml(object xml)
|
|
{
|
|
XmlDocument xd;
|
|
if (xml is XmlDocument)
|
|
{
|
|
xd = xml as XmlDocument;
|
|
}
|
|
else
|
|
{
|
|
xd = new XmlDocument();
|
|
xd.LoadXml(xml as string);
|
|
}
|
|
StringBuilder sb = new StringBuilder();
|
|
StringWriter sw = new StringWriter(sb);
|
|
XmlTextWriter xtw = null;
|
|
try
|
|
{
|
|
xtw = new XmlTextWriter(sw);
|
|
xtw.Formatting = System.Xml.Formatting.Indented;
|
|
xtw.Indentation = 1;
|
|
xtw.IndentChar = '\t';
|
|
xd.WriteTo(xtw);
|
|
}
|
|
finally
|
|
{
|
|
if (xtw != null)
|
|
xtw.Close();
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
|
|
private void RbJsonToXML_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = false;
|
|
}
|
|
AutoCode();
|
|
}
|
|
|
|
private void RbBigToSmall_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = false;
|
|
}
|
|
AutoCode();
|
|
}
|
|
|
|
private void RbSmallToBig_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = false;
|
|
}
|
|
AutoCode();
|
|
}
|
|
}
|
|
}
|