Andy Niu �����ĵ�

Andy Niu

Andy Niu Help  1.0.0.0

变量

 常用快捷键
 
 如何查看中文的utf8编码取值
 

详细描述

变量说明

如何查看中文的utf8编码取值
1、一般情况下,我们在notepad++中输入中文,拷贝出来,都是gb2312编码,也就是一个中文占用两个字节。
    如何查看中文的utf8编码取值?
2、在notepad++中,选择格式,以utf8格式编码,然后输入中文,比如:广播,
    这个时候拷贝到网络助手或者科鼎转换工具,转换为16进制,可以看到一个中文两个字节。
    把utf8格式的中文,当成gb2312解释,选择格式,以ansi格式编码,可以看到是三个乱码的中文。
    把这3个中文,拷贝到网络助手或者科鼎转换工具,转换为16进制,可以看到中文的utf编码取值,也就是3个字节。
3、道理是什么样的?
    在utf8格式下,输入"广播",这个时候不能拷贝到科鼎转换工具,因为拷贝过程中又变成了gb2312
    而是采用ansi编码去解释utf8编码的"广播",因为utf8每个中文字符是3字节,这时候是6字节。
    当成ansi解析,会有三个乱码的中文字符,这时候再拷贝到科鼎转换工具,就能看到utf8的编码。
    注意:ascii是单字节编码,使用一个字节表示一个字符,而ansi是双字节编码,使用两个字节表示一个字符。
    这里的ansi可以认为就是gb2312
4、明白了上面的道理,还有另外一种方式,查看中文字符的各种编码。如下:
    新建一个txt文件,输入"a广播",使用UE打开该文件,使用16进制查看,结果是 61 B9 E3 B2 A5,也就是默认的ANSI编码,gb2312
    然后另存为utf8,可以看到16进制为 EF BB BF 61 E5 B9 BF E6 92 AD,前面三个字节是BOM
    然后另存为unicode,可以看到16进制为 FF FE 61 00 7F 5E AD 64,前面两个字节是BOM
    然后另存为unicode big endian,可以看到16进制为 FE FF 00 61 5E 7F 64 AD,前面两个字节是BOM
    注意:大端是从前往后读,小端是从后往前读,广泛使用的是小端表示,调试的时候,可以看到内存取值,就是小端。
    这里可以看出,ansi和utf8的优点,对于ascii的英文字符,使用一个字节表示,节省内存。
    而unicode也就是utf6,固定使用两个字节表示一个字符,即使是ascii的英文字符
常用快捷键
1、列模式,按住alt,再操作鼠标
2、查找,下一个【F3】    上一个【shift+F3】
3、选中字符,Ctrl+u 转化为小写,Ctrl+Shift+u 转化为大写,Shift+u是大写U,转化为大写
4、查找的时候,一行出现多个结果,查找的结果列出多次,如何解决?
    第一种办法,扩大搜索的关键字
    第一种办法,使用正则表达式 如下:^(.*abc.*)+$, 仔细思考,可以去掉+,使用^(.*abc.*)$, 前面的.*尽量多吃,
    abc 匹配最后一行中的最后一个abc,由于notepad 本来就是按行,列出结果的,可以直接写成 .*abc
5、想把 AAA_123 BBB_456 CCC_789 替换为 123:AAA 456:BBB 789:CCC,怎么办?
    查找 ([A-Z]+)(_)([0-9]+)  替换为 $3:$1
6、注意小括号与中括号的区别,小括号表示整体,中括号表示集合
7、删除包含abc的行
    查找 ^.*abc.*$ 替换为 空,发现包含abc的行,变成了空行,怎么解决?
    需要把换行符一起换掉,查找 ^.*abc.*$\r\n 替换为 空
8、删除空行
    查找 ^[ \t]*$\r\n 替换为 空,这种方式,匹配了行结尾的位置,注意:\r\n在$ 之后
9、删除非e开头的行
    查找 ^[^e].*$\r\n 替换为 空,这种方式,匹配了行结尾的位置,注意:\r\n在$ 之后  
参见
Copyright (c) 2015~2016, Andy Niu @All rights reserved. By Andy Niu Edit.