c#版 native2ascii与ascii2native工具
在.net反编译的时候或者是查看网页源码中都能看到类似"\u7f16\u7801\u8f6c\u6362"的编码 ,阅读起来很是不方便,于是从网上搜索编码解码工具,只搜到一个html版本的native2ascii,网页版本的感觉不是很方便,就自己做了一个winform的工具
设计界面如图

1
using System;2
using System.Collections.Generic;3
using System.ComponentModel;4
using System.Data;5
using System.Drawing;6
using System.Text;7
using System.Windows.Forms;8
using Microsoft.VisualBasic.Devices;9
namespace native2ascii10


{11
public partial class Form1 : Form12

{13
public Form1()14

{15
InitializeComponent();16
}17

18
private void button1_Click(object sender, EventArgs e)19

{20
this.textBox1.Text = native2ascii2(textBox1.Text);21
}22

23
//native2ascii method24
public static String native2ascii(String str)25

{26
int code;27
char[] chars = str.ToCharArray();28
StringBuilder sb = new StringBuilder(255);29
for (int i = 0; i < chars.Length; i++)30

{31
char c = chars[i];32
if (c > 255)33

{34
sb.Append("\\u");35
code = (c >> 8);36
string tmp = code.ToString("X");37
if (tmp.Length == 1) sb.Append("0");38
sb.Append(tmp);39
code = (c & 0xFF);40
tmp = code.ToString("X");41
if (tmp.Length == 1) sb.Append("0");42
sb.Append(tmp);43
}44
else45

{46
sb.Append(c);47
}48

49
}50
return (sb.ToString());51
}52
public static String native2ascii2(String str)53

{54
string outStr = "";55
if (!string.IsNullOrEmpty(str))56

{57
for (int i = 0; i < str.Length; i++)58

{59
//将中文字符转为10进制整数,然后转为16进制unicode字符60
outStr += "\\u" + ((int)str[i]).ToString("x");61
}62
}63
return outStr;64
65
}66
//end method67
//ascii2native method68
public static String ascii2native(String str)69

{70
string outStr = "";71
if (!string.IsNullOrEmpty(str))72

{73
string[] strlist = str.Replace("\\", "").Split('u');74
try75

{76
for (int i = 1; i < strlist.Length; i++)77

{78
//将unicode字符转为10进制整数,然后转为char中文字符79
outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber);80
}81
}82
catch (FormatException ex)83

{84
outStr = ex.Message;85
}86
87
}88
return outStr;89
90
}91
//end method92

93
private void button2_Click(object sender, EventArgs e)94

{95
textBox1.Text = ascii2native(textBox1.Text);96

97
} 98

99
100

/**//// <summary> 101
/// 转换为简体中文 102
/// </summary> 103
public static string ToSChinese(string str)104

{105
//return Strings.StrConv(str, VbStrConv.SimplifiedChinese, 0);106
return Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0);107
}108

109

/**//// <summary> 110
/// 转换为繁体中文 111
/// </summary> 112
public static string ToTChinese(string str)113

{114
return Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);115
}116

117
private void button3_Click(object sender, EventArgs e)118

{119
textBox1.Text = ToTChinese(textBox1.Text);120
}121

122
private void button4_Click(object sender, EventArgs e)123

{124
textBox1.Text = ToSChinese(textBox1.Text);125
}126

127
128
}129
}
注:代码中的native2ascii 与native2ascii2方法都是实现从中文转换unicode方法
简体转繁体与繁体转简体用到了VB中的函数因此需要引用Visual Basic
引用方法
右击 引用 选择 添加引用 在引用.net库选择 Microsoft Visual Basic

浙公网安备 33010602011771号