C#字符ASCII码学习经验

很多时候我们需要得到一个英文字符的 ASCII 码,或者一个汉字字符的 Unicode 码,或者从相关的编码查询它是哪一个字符的编码。很多人,尤其是从 VB 程序序转过来学 C# 的人,会报怨 C# 里为什么没有提供现成的函数来做这个事情——因为在 VB 中有 Asc() 函数和 Chr() 函数用于这类转换。
但是如果你学过 C,你就会清楚,我们只需要将英文字符型数据强制转换成合适的数值型数据,就可以得到相应的C#字符ASCII码;反之,如果将一个合适的数值型数据强制转换成字符型数据,就可以得到相应的字符。
C# 中字符的范围扩大了,不仅包含了单字节字符,也可以包含双字节字符,如中文字符等。而在字符和编码之间的转换,则仍延用了 C 语言的做法——强制转换。不妨看看下面的例子

  1. private void TestChar() {
  2. char ch = ‘a‘; short ii = 65;
  3. this.textBox1.Text = "";
  4. this.textBox1.AppendText("The ASCII code of \‘"
    + ch + "\‘ is: " + (short) ch + "\n");
  5. this.textBox1.AppendText("ASCII is " + ii.ToString() + 
    ", the char is: " + (char) ii + "\n");
  6. char cn = ‘中‘; short uc = 22478;
  7. this.textBox1.AppendText("The Unicode of \‘" + cn + "\‘ is: 
    " + (short) cn + "\n");
  8. this.textBox1.AppendText("Unicode is " + uc.ToString() + 
    ", the char is: " + (char) uc + "\n");
  9. }

它的运行结果是

  1. The ASCII code of ‘a‘ is: 97
  2. ASCII is 65, the char is: A
  3. The Unicode of ‘中‘ is: 20013
  4. Unicode is 22478, the char is: 城

从这个例子中,我们便能非常清楚的了解——通过强制转换,可以得以字符的编码,或者得到编码表示的字符。如果你需要的不是 short 型的编码,即可得到 int 等类型的编码值。

C#字符ASCII码学习经验

时间: 2024-08-11 05:40:08

C#字符ASCII码学习经验的相关文章

33 第一个只出现一次的字符+ASCII码

题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 思路:使用一个hashmap遍历一遍,统计每个字符出现的次数,然后再统计一遍,找到第一个出现一次的元素. 所有的字符有256个,可以开辟一个256的数组,直接使用字符访问就可以了,会自动转换为整数.A是65. ASCII码 class Solution { public: int FirstNotRepeatingChar(string str) { if(str.size()

SqlSever基础 ascii函数 返回一个字符的ASCII码值

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --就算他有两个字符,ascii也只能获得第一个字符的ASCII码值 2 select ascii('ab') 2 show ------------------------------------------博文的精髓,在技术部分,更在镇场一诗.SqlSever是优秀的语言,值

C# 字符转ASCII码,ASCII码转字符

其实很简单就是使用ASCIIEncoding类相互转化一下,下面我提供两个方法大这看一下吧1.字符转ASCII码 public static int Asc(string character) { if (character.Length == 1) { System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); int intAsciiCode = (int)asciiEncoding.GetBytes(

如何由二进制ASCII码(010101)得到相应的字符

需求:有时在通信方面的一些工程,接收端接收到的往往是字符信息的ASCII码(0101)的东西,这串东西存到一个int型数组中(int a[7]),这个时候怎么解析相应的字符呢? 答案: #include <stdio.h> #include <math.h> int main() {           //0 1 2 3 4 5 6 int a[7]={0,0,0,0,1,1,0}; //"0"的ASCII码,注意倒序 int i; //循环变量 //打印AS

isascii(测试字符是否为ASCII码字符)

/*isascii(测试字符是否为ASCII码字符) 相关函数 iscntrl 表头文件 #include <ctype.h> 定义函数 int isascii(int c); 函数说明 检查参数c是否为ASCII码字符,也就是判断c的范围是否在0到127之间. 返回值 若参数c为ASCII码字符,则返回TRUE,否则返回NULL ( 0 ). 附加说明 此为宏定义,非真正函数. 范例*/ /* 判断int i是否具有对映的ASCII码字符 */ #include<stdio.h>

C语言字符转换ASCII码

//函 数 名:CharToHex()//功能描述:把ASCII字符转换为16进制//函数说明://调用函数://全局变量://输    入:ASCII字符//返    回:16进制/////////////////////////////////////////////////////////////////////unsigned char CharToHex(unsigned char bHex){    if((bHex>=0)&&(bHex<=9))        b

过滤ASCII码中的不可见字符, ASCII三部分, 各控制字符详解

今天产品部同事报告了一个BUG,经过调试发现,由于用户输入的字符串中,包含字符0x1E, 也就是”记录分隔符”(Record Separator, Notepad++ 显示为[RS]),导致JavaScript XML解析遭遇错误.于是就想在字符串中过滤掉这些没多大用途的字符,同时又要保留部分常用的字符,例如换行,回车和水平制表符.于是写了下面一个 PHP 函数: /** * 清理字符串中的部分不可见控制字符 * * @param string $string 待处理字符串 * @return

字符转换(2,8,10,16进制,ASCII码)

罗列了一些用到的,各进制 以及 ASCII 间的转换,记录备忘 一,先说说 2,8,10 ,16 各进制之间的转化 System.Convert类中提供了较为全面的各种类型.数值之间的转换功能: 几个比较常用的方法  1,Convert.ToInt32(string value, int fromBase)  :将字符串转换为数字(如2进制0010>也就是2^1=2)  fromBase: 顾名思义参数的进制(2,,8,10,16)     2,Convert.Tostring(int valu

js ASCII码 转 字符 ,字符 转 ASCII码

//ASCII码转换字符 function asciiToStr(code) { //alert("code:" + code + "\r\n字符:" + String.fromCharCode(code)); return String.fromCharCode(code); } //字符转换ASCII码 function strToAscii(str) { return str.charCodeAt(); }