小叙背景

Windows系统下,默认的字符集为ANSI,该字符编码方式在不同语言环境下采用不同的编码方案,在中文系统下ANSI编码是GBK。ANSI由ASCII扩展而来,ANSI下无论何种具体的编码方案,其前128个编码均为固定ASCII字符,这128个字符为英文环境下的大小写字母、数字、常用符号与控制符。

Code 与 Char

Code(text) 返回文本字符串中第一个字符的数字代码。

Char(number) 用于返回对应于数字代码的字符。

返回的代码或字符对应于计算机当前使用的字符集(ANSI),在中文环境下即是GBK字符集。这两个函数在ANSI字符集下是可以互相转换的,但是当遇到Unicode字符时就会出现问题。

两个函数的实际意义一般是用作辅助字符串处理,具体啥用处呢?

举个栗子

曾经在QQ上见网友@六号(355832828)@1661907132讨论QQ表情字符是如何被QQ识别的,对此博主进行了分析与解惑。

问题是这样的:

手机QQ复制一个表情,粘贴到别处,你会发现它是“/羊驼”,但是在QQ输入框里敲进“/羊驼”,发现它并不能被QQ识别,发出去的是输入的文字“/羊驼”。

博主认为QQ表情的真实值“/羊驼”(复制的)中应该是有不可见的控制字符的,而这个字符应该是在字符串的首位。

所以手机上用Excel 的Code函数试验了一下,发现它是一个ASCII值为20的控制符,具体是什么字符可以自己去翻ASCII码表。在Excel中用=CHAR(20)&"/羊驼"拼出一个字符串,复制一下在QQ粘贴便是羊驼的表情了。

题外话:

受这个故事的启发,博主对在处理ArcGis标注时字符前的空格会被标注引擎“吃掉”这件事有了这样一个想法——是否可以在标注字符前加入不可见控制符,避免空格被“吃掉”?试验结果是不可以,因为控制字符会显示为“口”。那么,中文下的空格会不会被吃掉呢?测试可行,VBS下表示中文空格用chr(41377)。

再举两个

Case1

如果在Excel中进行了硬换行,先要删除换行符,除了替换框用小键盘Alt+10键入进行替换外,还可以使用=SUBSTITUTE(A3,CHAR(10),"")进行函数处理,这里Char(10)便辅助输入了回车符。

Case2

使用Excel 的SUBSTITUTE函数进行替换操作时,被替换(第2参)与替换为(第3参)的字符串需要使用英文的双引号("")包裹,如果这两个参数就是引号呢?使用Char(34)辅助输入有没有很爽快?

ASC

Asc(text) 对于双字节字符集 (DBCS) 语言(中文就是),该函数将全角(双字节)字符转换成半角(单字节)字符。

实际用处呢就是如下图,有时候一些摸不着头脑的队友录入数据时使用了全角竟不自知,对于他们的数据可以使用asc拯救一下。

Excel函数——ANSI字符集与Code、Char、Asc函数的更多相关文章

  1. Asc函数与Chr函数

    返回值: Integer    返回字符串中第一个字符的字符代码.    提示: Chr函数可以将一个Ascii码转换为相对应的字符 语法:   Asc(string) string,必须参数,字符串 ...

  2. excel手机号码归属地批量公式查询 vlookup函数

    Excel手机号码归属地 批量公式查询 vlookup函数 xls 手机号码 添加一列 地区归属地 使用      公式:=(VLOOKUP(LEFT(B2,7),号段数据库!B:D,2,0)& ...

  3. excel判断单元格包含指定内容的函数用=IF(COUNTIF(A1,"*内容*"),"0","1")

    前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数 选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“ ...

  4. Excel VBA入门(六)过程和函数

    前面讲过,VBA代码有两种组织形式,一种就是过程(前面的示例中都在使用),另一种就是函数.其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数有返回值,过程没有 函数可以在Ex ...

  5. 个人永久性免费-Excel催化剂功能第46波-区域集合函数,超乎所求所想

    在常规自定义函数的世界中,一般情况下,仅会输入一堆的参数,最终输出一个结果值,在以往Excel催化剂的自定义函数,已经大量出现输入一堆参数返回多个结果值并自动输出到多个单元格区域内.此项技术可运用的场 ...

  6. Excel催化剂开源第11波-动态数组函数技术开源及要点讲述

    在Excel催化剂中,大量的自定义函数使用了动态数组函数效果,虽然不是原生的Excel365版效果(听说Excel2019版取消了支持动态数组函数,还没求证到位,Excel365是可以用,但也仅限于部 ...

  7. [转]EXCEL截取字符串中某几位的函数——LeftMIDRight及Find函数的使用

    原文地址:http://blog.sina.com.cn/s/blog_3f136a180102ymq5.html EXCEL截取字符串中某几位的函数 ——Left MID Right及Find函数的 ...

  8. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg, 字符串内的其他字符不改变,给定函数,编写函数 void Stringchang(const char*input,char*output)其中input是输入字符串,output是输出字符串

    import java.util.Scanner; /*** * 1. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg, 字符串内的其他字 ...

  9. JavaScript 语法——字面量,变量,操作符,语句,关键字,注释,函数,字符集

    JavaScript 是一个程序语言. 语法规则定义了语言结构. 它是一个轻量级,但功能强大的编程语言.   ㈠JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14. ⑴数字 ...

随机推荐

  1. docker x509: certificate has expired or is not yet valid

    系统环境:centos 6.5 内核版本:2.6.32-696.1.1.el6.x86_64 程序版本:Docker version 1.7.1, build 786b29d/1.7.1 问题:下载镜 ...

  2. MySQL全面优化,速度飞起来!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:惨绿少年 https://www.cnblogs.com/clsn/p/8214048.html 在进行MySQL的优 ...

  3. KMP算法及实现

    #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #inclu ...

  4. 17-vim-查找字符或单词-02-查找并替换

    在vi中查找和替换命令需要在末行模式下执行. 命令 功能 :%s///g 末行模式下,查找并替换字符.例:%s /hello/world/g 1.全局替换 一次性替换文件中的所有文件的旧文本. 命令格 ...

  5. python图像特征提取

    这里使用的是python 3.5 .opencv_python-3.4.0+contrib,特征提取的代码如下: import cv2 img = cv2.imread("feature.j ...

  6. python之数据序列转换并同时计算数据

    问题 你需要在数据序列上执行聚集函数(比如 sum() , min() , max() ), 但是首先你需要先转换或者过滤数据 解决方案 一个非常优雅的方式去结合数据计算与转换就是使用一个生成器表达式 ...

  7. ORACLE PL、SQL编程

    PL(Procedural Language)过程化的编程语言,是在SQL的基础上增加的部分,如:变量的使用.流程控制等, 重点学习Oracle和MySQL创建存储过程及流程控制的异同. 一.存储过程 ...

  8. 将arcEngine9.3和dev9.2.4开发的项目升级成arcObject10.2和dev15.1.3过程中遇到的问题和解决

    好久没碰.net了,arcgis更是感觉都忘干净了,今天将arcEngine9.3和dev9.2.4开发的一个项目升级成arcObject10.2和dev15.1.3过程中遇到了一系问题,留个笔记,留 ...

  9. 【记坑】Oracle数据库Date类型查询结果多出".0"的解决方法

    oracle设置数据库某张表的字段类型为date,数据库存值为 2019-11-25 18:51:47 格式,但是从数据库查询出来之后格式为 String stopTime = map.get(&qu ...

  10. python补充4

    一 如何判断一个对象是不是函数类型 #方法一def func(arg): if callable(arg): print("是函数"+arg()) else: print(arg) ...