代码基础知识-5字符和编码

string:字符串
char:字符
UTF-8:字符集
GBK:字符集
正方,仿宋:字体
储存字体图形的文件:字体库


UTF-8

UTF 是 Unicode Transformation Format 的缩写,意思是“Unicode转换格式”
这就是一个常用的字符集,它储存了世界上所有能读能写的字符(甚至还有不能读的)
每个字符都有一个编号,然后字体库里有储存了每个编号对应的图像信息。最终变成你看到的文字。
8个bit为1字节。28=16*16.有的时候复制网址,网址上的中文会变成 [%AC] 这样的东西
在这里插入图片描述
这里就是用两个16进制表示一个字符
但UTF-8不一定是用8个bit表示字符的,如果符号足够偏僻,编码位置足够靠后,
可能会在首字节标记标识符,并联合后面几个字节一起表示符号。[参考资料]
我们一般常用的字符集还有[GBK字库]。另附UTF的[字符表]

*如果一个记事本文件打开以后都是你看不懂的汉字,很可能是使用了utf-8编码。而记事本通产直接使用gbk解码的。如果是一堆方块和符号,说明这不是字符文件,比如把QQ的后缀改成txt打开


char

c#里的char是2字节的utf-16编码。当utf-8理解就好了。
char类型的数据用单引号括起来表示

char a='1';
Console.WriteLine('1');

由于char本身就是一串数字编码,所以可以用数字强转

char a=(char)78;
int b=a;//此处无需强转,int包容char类型
Console.WriteLine(a);

short需要强转并可能溢出,ushort可以直接接受char类型数据
此处运行会显示[N]。因为在UTF字符集里N的编码就是78.
按住alt键,依按下小键盘上的78,松开alt。你也能得到一个N

char a=(char)78;
Console.WriteLine(a-2);

字符不能做加减,所以char会自动转化为数字然后-2.得到76.


string

char中双引号内必须且只能有1个字符。
而字符串的双引号内不限长度。包括0.

int a=8;
int b=9;
Console.WriteLine(""+a+b);

一种快速转字符串的方法(对代码而言,程序并不这么想)
string不能直接赋值数字或字符


转义

我们使用引号表达这是一串字符串,可是如果我们在字符串里面就是想表达一个引号改怎么做呢?
[\]斜杠即是一个转义符号

string a="  \"hi\"   " //输出 "hi"

转义符号后面必须跟随能转义的符号,否则会编译报错
字符串以双引号为边界,因此单引号无需转义
字符以单引号为边界,此时单引号需转义,不用转义双引号
\n表示换行
\t表示水平制表符
更多资料


隐式转换

变量的类型和值的类型需要对应才能赋值。
在之前的double可以用int类型的数值赋值并不意味着int属于double
而是因为其特性,程序可以不加声明的将int转化成double
用int值直接赋值给string时你可以看到编译器报错:不能将int隐式转换为string

猜你喜欢

转载自blog.csdn.net/zms9110750/article/details/106527048
今日推荐