以前我用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#确实麻烦,一大堆不知道的东西,
测试:输入“我”
终于得到了想要的:-12590
什么asciiencoding,结果得到的是63,解释为不能识别的编码,这倒好,以后只要是中文,全是63,
试了utf8的,unicode,真是不知所云,平常对编码太不熟悉了。
最后用encoding类,可是还是得不到结果。找啊找......,结果发现中文支持,要支持中文,它的编码名称为gb18030,代码页54936,
用c#语句:
<!--/ubbcodetab-->encoding ecode = encoding.getencoding("gb18030");
开始写代码:
<!--/ubbcodetab-->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
我不知在做什么,为了这个简单的功能,就好象到黄山去旅游,结果坐船先到美洲,再到欧洲,再到三峡,再到黄山。
就因为,我找不到直接去黄山的专车,如果谁知道了,来告诉一下。
分享到:
相关推荐
C#去掉特定字符(使用ASC码),本方法可以直接调用。
C# 中2,10,16进制及其ASCII码之间转化,C#语言编程学习之路
用C#编程实现了串口的ascii码调试,对于使用串口调试的编程者有帮助
将ASCII字符转换为对应的数值即‘a’–>65,使用ord函数,ord(‘a’) 反之,使用chr函数,将数值转换为对应的ASCII字符,chr(65) 可以同时使用这两个函数: ...以上这篇python中ASCII码和字符的转换方法就
C#貌似没有专门用于ASCII码转字符或字符转ASCII码的系统函数,所以小编这里就借用一下强制类型转换来实现ASCII码与字符之间的互转。 所谓的ASCII码,即American Standard Code for Information Interchange,美国...
任意字符到ASCII码互转工具,VB开发源代码,可以把任意字符(数字、字母、汉字)转化成ascii码,也可以把ascii码还原成最初的字符。转化后的的结果(注:每个字符之间用“/”间隔开)。 使用说明:一共三个大文本框,...
C#中的ASCII码排序并不是表面上那么简单,一不小心就入坑了。因为C#的排序默认并不是按照ASCII码进行排序的。举个例子, 我有这样一个字符串数组,然后对其排序。 string[] vv = { 1, 2, A, a, B, b }; Array.Sort...
STM32ASCII码表和转义字符 在C 语言中,运算符的优先关系非常重要,如果没有了解其关系,当在一个公式内涉及多个数据的同 时计算,就可能会因为弄错优先关系而导致错误的计算结果。 例如: a | b * c 其中*的优先级...
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
此方法适用于3.12OLED 汉字和ASCII码取模打开此软件选择字符模式,然后打开选项选项设置如下,注意:点阵那一栏需要输入字符的字节数,字符的字节数为:字宽
当输入字符串时,系统会根据汇编显示他们的ASCII码值,并且界面友好
这是一个测试键盘事件的程序,基于VisualBasic6.0开发平台,运行程序后,当键盘上的按键时,对话框上就能显示相应按键的ASCII码的数值,很方便!
ASCII码对照表,所有字符对应的十进制数和十六进制数
输入一个字符串,把对应的每一个字符都显示为ASC码
字符串转ascii码,可以用于手机wap网页开发。将中文转换成asc码,避免中文乱码问题。
开发平台;VS2008 选择TXT文件进行读写操作,读写同时显示出对应的ASCII码 亮点:选择txt时只允许选择TXT文档
可以轻松转换进制。 支持多种进制转换 字符转16进制、16进制转字符等多种格式
结巴分词中prob_states.py中所有的ASCII码值对应的中文汉字,一共是6648个常用汉字。帮助大家学习参考
char java c# 用的asc ASCⅡ码
Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值