### RySmartEditor V1.0.2503.3001 - *.[新增]在文件管理器中新增支持将所有站点对应的文件上传到FTP。 - *.[新增]新增支持自动同步选定文件到最新版。 ### SuperDesign V3.0.2503.3001 #### 项目功能->更新日志 - *.[修复]修复当更新日志为空时,插入更新分组会报错的BUG。 - *.[修复]修复存在多个分组时,添加修复日志会添加到最后一个分组末尾的BUG。 #### 网页抓取工具 - *.[改进]改进网页图标获取,支持获取更多网站的图标。 - *.[修复]修复当图标文件夹不存在时,读取图标会报错的BUG。 - *.[修复]修复当Url不是图片地址时,勾选获取图片会报错的BUG。 - *.[修复]某些情况下,当目标网站图标不存在时,点击执行按钮时会长时间等待的BUG。 - *.[修复]修复剪切板读取失败可能会导致程序异常退出的BUG。 - *.[修复]修复历史记录里的UserAgent值不正确导致无法执行操作的BUG。
361 lines
11 KiB
C#
361 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();
|
|
}
|
|
private void FrmEncode_Load(object sender, EventArgs e)
|
|
{
|
|
}
|
|
}
|
|
}
|