发表于 2019-03-26 13:18:16 累积访问 2325 次 字符输入
QQ、微信等聊天工具中通常要求网名不能是空白的,但是在好友列表中常常会看到有些好友的网名是空白的,这是如何实现的呢?
这涉及到字符编码的问题,在英文半角输入状态下输入的空格是通常是ASCII编码的,转换为16进制时对应的编码为0x20,占用一个字节,程序中检查网名对应的字符串是否为空白通常就是检查是否包含0x20。如果不包含,就会认定为不是空的。在显示中文时,通常会采用ANSI和Unicode两种编码格式。一个ANSI字符占用两个字节,空白字符的编码为0xC2A0,一个Unicode字符占用三个字节,空白字符的编码为0xE38080,空白网名正是通过这两个非ASCII码的字符实现的。
中文计算机操作系统内部默认是ANSI编码的,把输入法调整为全角输入(输入法状态栏的月牙图标调整成实心圆圈)输入的空格即为0xC2A0对应的两字节空格。如果不想通过输入法,可以按住ALT键依次输入0160再松开,会自动输入一个两字节空格。
Unicode编码的三字节空白字符一般需要按照特殊符号输入,可以复制下面箭头内部的空白处,直接粘贴使用。
[→ ←]