AsciiToCharReplacer.cs
4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
public class AsciiToCharReplacer
{
Dictionary<int, string> asciiToMCS = new Dictionary<int, string>
{
{ 0, "NUL" }, // 空字符(Null)
{ 1, "SOH" }, // 报头开始(Start of Heading)
{ 2, "STX" }, // 正文开始(Start of Text)
{ 3, "ETX" }, // 正文结束(End of Text)
{ 4, "EOT" }, // 传输结束(End of Transmission)
{ 5, "ENQ" }, // 请求(Enquiry)
{ 6, "ACK" }, // 确认(Acknowledge)
{ 7, "BEL" }, // 响铃(Bell)
{ 8, "BS" }, // 退格(Backspace)
{ 9, "HT" }, // 水平制表符(Horizontal Tab)
{ 10, "LF" }, // 换行符(Line Feed)
{ 11, "VT" }, // 垂直制表符(Vertical Tab)
{ 12, "FF" }, // 换页符(Form Feed)
{ 13, "CR" }, // 回车符(Carriage Return)
{ 14, "SO" }, // 转义开始(Shift Out)
{ 15, "SI" }, // 转义结束(Shift In)
{ 16, "DLE" }, // 数据链路转义(Data Link Escape)
{ 17, "DC1" }, // 设备控制1(Device Control 1)
{ 18, "DC2" }, // 设备控制2(Device Control 2)
{ 19, "DC3" }, // 设备控制3(Device Control 3)
{ 20, "DC4" }, // 设备控制4(Device Control 4)
{ 21, "NAK" }, // 拒绝接收(Negative Acknowledgment)
{ 22, "SYN" }, // 同步空闲(Synchronous Idle)
{ 23, "ETB" }, // 传输块结束(End of Transmission Block)
{ 24, "CAN" }, // 取消(Cancel)
{ 25, "EM" }, // 媒介结束(End of Medium)
{ 26, "SUB" }, // 替代(Substitute)
{ 27, "ESC" }, // 转义(Escape)
{ 28, "FS" }, // 文件分隔符(File Separator)
{ 29, "GS" }, // 组分隔符(Group Separator)
{ 30, "RS" }, // 记录分隔符(Record Separator)
{ 31, "US" }, // 单元分隔符(Unit Separator)
{ 32, "SP" }, // 空格(Space)
{ 33, "!" }, // 感叹号
{ 34, "\"" }, // 双引号
{ 35, "#" }, // 井号
{ 36, "$" }, // 美元符号
{ 37, "%" }, // 百分号
{ 38, "&" }, // 和号
{ 39, "'" }, // 单引号
{ 40, "(" }, // 左括号
{ 41, ")" }, // 右括号
{ 42, "*" }, // 星号
{ 43, "+" }, // 加号
{ 44, "," }, // 逗号
{ 45, "-" }, // 减号
{ 46, "." }, // 句号
{ 47, "/" }, // 斜杠
{ 48, "0" }, // 数字0
{ 49, "1" }, // 数字1
{ 50, "2" }, // 数字2
{ 51, "3" }, // 数字3
{ 52, "4" }, // 数字4
{ 53, "5" }, // 数字5
{ 54, "6" }, // 数字6
{ 55, "7" }, // 数字7
{ 56, "8" }, // 数字8
{ 57, "9" }, // 数字9
{ 58, ":" }, // 冒号
{ 59, ";" }, // 分号
{ 60, "<" }, // 小于号
{ 61, "=" }, // 等于号
{ 62, ">" }, // 大于号
{ 63, "?" } // 问号
};
/// <summary>
/// 将string字符中的隐藏字符显示为ascii码
/// </summary>
/// <returns></returns>
public string StringToAscii(string str,out string[] strings)
{
List<string> result = new List<string>();
foreach (var kvp in asciiToMCS)
{
string formattedValue = $"[{kvp.Value}]";
result.Add(formattedValue);
}
// 将结果转换为字符串数组
strings = result.ToArray();
string output = "";
foreach (char car in str)
{
if (char.IsControl(car))
{
int i = car;
output += $"[{asciiToMCS[i]}]";
}
else
{
output += car.ToString();
}
}
return output;
}
public string AsciiToString(string str)
{
string outup = str;
foreach (var kvp in asciiToMCS)
{
outup = outup.Replace($"[{kvp.Value}]", ((char)kvp.Key).ToString());
}
return outup;
}
}
}