.NET开发:探讨?C#中如何得到双字节字符的ASCII码
首页
网站制作
软件工程
VC语言
Delphi
VB
Asp
Java
数据库
编程语言
.NET
热点排行
Mono 基本概念
C#学习笔记之四(Attribute, Reflection, Thread, Thread Synchronization)
在Sql server中存取word文件!
[DNN学习所得]HttpModule到底是个什么东西
利用ASP.NET向服务器上传文件
代号BoLu项目开发日志1
c#中结构与类的区别
试用SharpDevelop之感想
.NET大地震冲击IT
.NET开发AutoCAD指南(一)
栈实现字符串表达式计算
vc#2005 WinForm 开发体验(原创)
设置DataGrid表格控件的列显示样式,例如设置列宽,表头等
中国共享软件走向国际指南
在IE浏览器中使用Windows窗体控件(一)
探讨?C#中如何得到双字节字符的ASCII码
类别:
.NET开发
点击:
0
评论:
0
推荐:
以前我用VB,很快得出了这个想要的结果:
Dim ascStr as string = ASC(TextBox.Text(0))
可是我用C#了,对这个看似简单的,也费尽了脑。
string ascStr = (int)textBox1.Text[0];
能对付abcd.....及+_(),但对“我,你、他”就没办法了,不信你试试:
比较VB的ASC——C#的int值:
VB(ASC)的我:-12590
C#(INT)的我:25105,减(
2^16=65536
)为:-40431
哭了......
我看书,找不到,看帮助。但C#确实麻烦,一大堆不知道的东西,
什么ASCIIEncoding,结果得到的是63,解释为不能识别的编码,
这倒好,以后只要是中文,全是63,
试了UTF8的,Unicode,真是不知所云,平常对编码太不熟悉了。
最后用Encoding类,可是还是得不到结果。找啊找......,结果发现中文支持,要支持中文,它的编码名称为GB18030,代码页54936,
用C#语句:
Encoding ecode = Encoding.GetEncoding("GB18030");
开始写代码:
Encoding ecode = Encoding.GetEncoding("GB18030");
Byte[] codeBytes = ecode.GetBytes(chr.ToString());
MessageBox.Show( codeBytes[0].ToString() );
结果得到了个百位数的值,又不行。
忽然想到了中文字都是双字节的,就用一个函数判断一下,该字符是否为双字节
/// <summary>
///
是否为双字节字符。
/// </summary>
public
static bool
IsTwoBytesChar(
char
chr)
{
string
str =chr.ToString();
// 使用中文支持编码
Encoding ecode = Encoding.GetEncoding("GB18030");
if
(ecode.GetByteCount(str) == 2)
{
return
true;
}
else
{
return
false;
}
}
好了,就来得到这个ASCII码:
/// <summary>
///
得到字符的ASCII码
/// </summary>
public static int
ASCII(
char
chr)
{
Encoding ecode = Encoding.GetEncoding("GB18030");
Byte[] codeBytes = ecode.GetBytes(chr.ToString());
if
( IsTwoBytesChar(chr) )
{
// 双字节码为高位乘256,再加低位
// 该为无符号码,再减65536
return
(
int
)codeBytes[0] * 256 + (
int
)codeBytes[1] - 65536;
}
else
{
return
(
int
)codeBytes[0];
}
}
测试:输入“我”
终于得到了想要的:-12590
我不知在做什么,为了这个简单的功能,就好象到黄山去旅游,结果坐船先到美洲,再到欧洲,再到三峡,再到黄山。
就因为,我找不到直接去黄山的专车
,如果谁知道了,来告诉一下。
不过没关系,我风景看够了。
本文地址:http://com.8s8s.com/it/it43504.htm
白羊
金牛
双子
巨蟹
狮子
处女
天秤
天蝎
射手
摩羯
水瓶
双鱼
今日
本周
本月
白羊
金牛
双子
巨蟹
狮子
处女
天秤
天蝎
射手
摩羯
水瓶
双鱼
A型
B型
O型
AB型
子鼠
丑牛
寅虎
卯兔
辰龙
巳蛇
午马
未羊
申猴
酉鸡
戌狗
亥猪
A型
B型
AB型
O型
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
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日
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
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日