1。汉字字符与英文字母之间区别
标准的asc表不包含汉字字符,因为一个asc字符只有1byte,就是8bit,8bit所能代表的数字范围,如果是有符号的好,因该为-128-127,无符号的话,应该为0-255。而我们知道,一个汉字字符,应该占有2个byte,表示范围应该为-32768-32767,所以汉字的asc,举例一段bit: 11002111,11111101它所代表的字符,应该超过了asc所能表述的范围,这时候就会产生溢出。所以占有两个byte的汉字字符的asc码应该为负的。
2.功能实现
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace ConsoleApplication1
6
{
7
class Program
8
{
9
static void Main(string[] args)
10
{
11
Console.WriteLine(GetChineseFirstChar("我a*%爱你中国"));;
12
}
13
static string GetChineseFirstChar(string chineseStr)
14
{
15
StringBuilder sb = new StringBuilder();
16
int length = chineseStr.Length;
17
for (int i = 0; i < length; i++)
18
{
19
char chineseChar = chineseStr[i];
20
sb.Append(GetpyChar(chineseChar));
21
}
22
return sb.ToString();
23
}
24
static string GetpyChar(char c)
25
{
26
int ascCode = Microsoft.VisualBasic.Strings.Asc(c);
27
int temp = 65536 + ascCode;
28
if (temp >= 45217 && temp <= 45252)
29
{
30
return "A";
31
}
32
else if (temp >= 45253 && temp <= 45760)
33
{
34
return "B";
35
}
36
else if (temp >= 45761 && temp <= 46317)
37
{
38
return "C";
39
}
40
else if (temp >= 46318 && temp <= 46825)
41
{
42
return "D";
43
}
44
45
46
else if (temp >= 46826 && temp <= 47009)
47
{
48
return "E";
49
}
50
else if (temp >= 47010 && temp <= 47296)
51
{
52
return "F";
53
}
54
else if (temp >= 47297 && temp <= 47613)
55
{
56
return "G";
57
}
58
else if (temp >= 47614 && temp <= 48118)
59
{
60
return "H";
61
}
62
else if (temp >= 48119 && temp <= 49061)
63
{
64
return "J";
65
}
66
else if (temp >= 49062 && temp <= 49323)
67
{
68
return "K";
69
}
70
else if (temp >= 49324 && temp <= 49895)
71
{
72
return "L";
73
}
74
else if (temp >= 49896 && temp <= 50370)
75
{
76
return "M";
77
}
78
else if (temp >= 50371 && temp <= 50613)
79
{
80
return "N";
81
}
82
else if (temp >= 50614 && temp <= 50621)
83
{
84
return "O";
85
}
86
else if (temp >= 50622 && temp <= 50905)
87
{
88
return "P";
89
}
90
else if (temp >= 50906 && temp <= 51386)
91
{
92
return "Q";
93
}
94
else if (temp >= 51387 && temp <= 51445)
95
{
96
return "R";
97
}
98
else if (temp >= 51446 && temp <= 52217)
99
{
100
return "S";
101
}
102
else if (temp >= 52218 && temp <= 52697)
103
{
104
return "T";
105
}
106
else if (temp >= 52698 && temp <= 52979)
107
{
108
return "W";
109
}
110
else if (temp >= 52980 && temp <= 53688)
111
{
112
return "X";
113
}
114
else if (temp >= 53689 && temp <= 54480)
115
{
116
return "Y";
117
}
118
else if (temp >= 54481 && temp <= 62289)
119
{
120
return "Z";
121
}
122
else
123
{
124
return c.ToString();
125
}
126
}
127
}
128
}
129

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

122

123

124

125

126

127

128

129

3.文件:
/Files/jillzhang/Jillzhang.rar