半角转全角函数
在不用的语言环境中,半角转函数所显示的名字
人民币函数
在不同的语言环境中,RMB函数所显示的名字
在货币函数中,还有一个【DOLLAR】函数,在不同的语言环境中。这个函数会有什么变化呢?
在不同语言环境中,Dollar函数所显示的名字及效果
PS:为什么是这5种语言导致的这三个函数名名字会改变?
在Excel文件【JIS】函数的帮助文件中,有这样一句话:【函数的名称】及其【转换的字符】取决于您的语言设置。
这里的语言设置是什么意思呢?有哪些语言呢?
首先,我们需要明白在Office中,有几种字符集语言:1、单字节字符集 (SBCS) 的语言;2、双字节字符集 (DBCS) 的语言。
其次,这两种语言怎么区分呢?在【LENB】函数的帮助文件中,有这样一句话:支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。
对于DBCS语言的,百度中给的解释是:
虽然中文、日文和韩文共用一些相同的象形文字,但显然这三种语言是不同的,而且经常是同一个象形文字在三种不同的语言中代表三件不同的事。Windows支持四个不同的双位元组字元集:内码表932(日文)、936(简体中文)、949(韩语)和950(繁体汉字)。只有为这些国家(地区)生产的Windows版本才支持DBCS。明白Unicode和DBCS之间的区别很重要。Unicode使用(特别在C程式设计语言环境里)宽字元集。Unicode中的每个字元都是16位元宽而不是8位元宽。在Unicode中,没有单单使用8位元数值的意义存在。相比之下,在双位元组字元集中我们仍然处理8位元数值。有些位元组自身定义字元,而某些位元组则显示需要和另一个位元组共同定义一个字元。
简单来说。ASCII字元由1个位元组表示,一个byte里剩下的码位最多也只能表示128个字符,中日韩不够用。自然而然会想到的一种办法就是用两个byte来表示一个字符。ASCII不是空出来了高128个码位吗?第一个byte在这高128里取值,再和第二个byte结合就可以表示最多128x256=32768个字符了。程序在处理字符串的时候,遇到有byte<128的就认为是ASCII,遇到>=128的就把下一个byte也读进来,换算成一个字符。
所以双字节字符虽然保持了和ASCII的兼容性,但天生就和CP437冲突。在具体的编码方案上,各国因地制宜的制定了不同的方案,于是就出现了中文(简体)、中文(繁体)、日文、韩文【这里的朝鲜和百度中的韩语,不过多解释为什么哈】。各国的DBCS方案虽然原理类似,但实际占用的码位都有区别,并不是单纯靠检查byte的最高位是不是为1(即大于127)来判断的。所以有一些函数需要根据默认的编辑语言,显示不同的名字,来进行特殊的判断和转换。
大家如果有兴趣,可以再测试下,看是否还有其他函数,也存在这样的情况。
本篇经头条创作者"上班下班"同意在公众号中在发布。欢迎关注"上班下班"头条号。
欢迎点击"在看"