首页
学习
活动
专区
圈层
工具
发布

Unicode入门介绍和学习总结

我们都知道在我们的软件中应该 “支持 Unicode”。 但 Unicode 很深奥,它有上千页的 ![Unicode 标准][1] ,还有几十页的补充附录、报告和 ![注解][2],简直太吓人了。...Unicode 包含一个系统,可以合并多个编码点,动态组合字符。此系统用各种方式增加灵活性,而不引起编码点的巨大组合膨胀。 例如,在欧洲语言中,组合标记出现在变音符和字母的使用中。...可是,组合标志系统确实允许任意数量的变音符号被叠加到任何基础字符上。使用归谬法的 Zalgo 文本![][14],它通过随机叠加任意数量的变音符号在每个字母上,让它溢出行距,产生混乱现象。...它们有变音符号标记元音(用在字典,语言教学材料,儿童教材,等地方)。这些变音符号用组合标记表示。...就像生活中一些手机厂商新出的那些emoji表情,在自己的手机上可以正常显示,发到其他品牌的手机上可能就无法显示这其实也是字符集不支持导致的。

2.4K10

Unicode入门介绍和学习总结

我们都知道在我们的软件中应该 “支持 Unicode”。 但 Unicode 很深奥,它有上千页的 ![Unicode 标准][1] ,还有几十页的补充附录、报告和 ![注解][2],简直太吓人了。...Unicode 包含一个系统,可以合并多个编码点,动态组合字符。此系统用各种方式增加灵活性,而不引起编码点的巨大组合膨胀。 例如,在欧洲语言中,组合标记出现在变音符和字母的使用中。...可是,组合标志系统确实允许任意数量的变音符号被叠加到任何基础字符上。使用归谬法的 Zalgo 文本![][14],它通过随机叠加任意数量的变音符号在每个字母上,让它溢出行距,产生混乱现象。...它们有变音符号标记元音(用在字典,语言教学材料,儿童教材,等地方)。这些变音符号用组合标记表示。...就像生活中一些手机厂商新出的那些emoji表情,在自己的手机上可以正常显示,发到其他品牌的手机上可能就无法显示这其实也是字符集不支持导致的。

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言】项目实践-贪吃蛇小游戏(Windows环境的控制台下)

    ,128个字符是基本够用的,但是,在其他国家语言中,比如,在法语中,字母上方有注音符号,它就就法用 ASCII 码表示。...于是,⼀些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样⼀来,这些欧洲国家使用的编码体系,可以表示最多256个符号。...不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不⼀样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (),在俄语编码中用会代表另⼀个符号。...但是不管怎样,所有这些编码方式中,0--127表示的符号是⼀样的,不⼀样的只是128--255的这⼀段。 至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。...printf()打印的汉字在中国大陆常见的是 GB2312、GBK 或者 UTF-8 编码。这个编码通常由系统的 locale 设置决定。

    1.6K10

    【C语言】【数据结构】项目实践——贪吃蛇游戏(超详细)

    ,128个字符是基本够用的,但是,在其他国家语言中,比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。...于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。...不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。...比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (), 在俄语编码中又会代表另一个符号。...但是不管怎样,所有这 些编码方式中,0--127表⽰的符号是一样的,不一样的只是128--255的这一段。至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。

    1.3K10

    有赞零售跨平台打印库方案

    ESC/POS 协议 基于 ESC/POS 封装的上层协议 目前市面上的 99% 的票据打印机都支持 ESC/POS 协议,是票据打印机的事实标准。...ESC/POS 打印命令集是 ESC 打印控制命令的简化版本,现在大多数票据打印都采用 ESC/POS 指令集。...7.2 标签打印机协议 目前市面上标签打印机协议没有类似 ESC/POS 的通用协议,根据打印库对接的几款标签打印机来看,打印机厂商的提供的协议文档都是对底层协议进行了封装。...+ 0A 右对齐 + 加宽加粗两倍 + 有 + 赞 + 打印并换行 以上为 HTML 到 ESC/POS 指令的解析过程。...在 ESC/POS 协议中,打印图片的指令如下: ? 其中 d1~dk就是图片的数据块,并且值只有 0与 1,1表示打印该点,0为不打印该点。

    2.3K61

    xv6(18) 控制台输入输出

    键盘编码器 键盘编码器位于键盘,它的作用主要是监测键的按下和弹起,然后将两种状态编码,发送给键盘控制器。...else if(c == BACKSPACE){ //退格 if(pos > 0) --pos; 如果是退格的话就将光标值减 1,当然是在光标值本身大于 1 的情况下操作,光标的位置值是不可能小于...crt[pos] = ' ' | 0x0700; //在光标位置打印空白字符 最后就是更改光标寄存器里面的值,前面修改 $pos$,那只是光标在内存里面的值,要同步更改寄存器里面的值,才是真正地更改光标位置...如果当前字符前面是一个%说明需要格式化处理 if(c == 'd'){ //如果是%d printint(fd, *ap, 10, 1); //调用printint打印有符号十进制数...参数指针指向下一个参数 } else if(c == 'x' || c == 'p'){ //如果是%x,%p printint(fd, *ap, 16, 0); //调用printint打印无符号十六进制数

    98510

    【C语言数据结构】零基础打造控制台游戏:贪吃蛇实战教程----链表与Win32 API的完美结合!

    加速;S 减速;ESC 退出)。...于是,⼀些欧洲国家就决定,利⽤字节中闲置的最⾼位编⼊新的符号。⽐如,法语中的é的编码为130(⼆进制10000010)。这样⼀来,这些欧洲国家使⽤的编码体系,可以表⽰最多256个符号。...不同的国家有不同的字⺟,因此,哪怕它们都使⽤256个符号的编码⽅式,代表的字⺟却不⼀样。⽐如,130在法语编码中代表了é,在希伯来语编码中却代表了字⺟Gimel ,在俄语编码中⼜会代表另⼀个符号。...但是不管怎样,所有这些编码⽅式中,0–127表⽰的符号是⼀样的,不⼀样的只是128–255的这⼀段。⾄于亚洲国家的⽂字,使⽤的符号就更多了,汉字就多达10万左右。...⽐如,简体中⽂常⻅的编码⽅式是 GB2312,使⽤两个字节表⽰⼀个汉字,所以理论上最多可以表⽰ 256 x 256 = 65536 个符号。

    47310

    C语言项目---贪吃蛇

    ); else if (KEY_PRESS(0x39)) printf("9\n"); } } 注意:这里运行界面上出现的12345并不是scanf函数输入上去的,而是我们通过识别键盘按钮打印在屏幕上面的...我们将宽字符和窄字符对比一下: 可以看到,上面的是两个窄字符,下面是一个宽字符,可以看出两个窄字符等于一个宽字符的 C语言默认采用ASCII编码的,ASCII字符采用的是单字节编码,且只使用了单字节的七位...宽字符的打印 宽字符的字面量必须加上前缀L,否则C语言会把字面量当做宅字符类型处理,前缀L在单引号前面,表示宽字符,宽字符的打印用wprintf,对应wprintf()的占位符为%lc;在双引号前面,...ps->SleepTime); //走一步 SnakeMove(ps); } while (ps->status==OK); } 先利用上面讲的识别键盘按键的函数把需要用到的按键给识别了,然后在最前面打印需要的信息...1:0) //蛇默认的起始坐标 #define POS_X 24 #define POS_Y 5 //游戏的状态 enum GAME_STATUS { OK = 1,//正常运行 ESC,/

    54310

    基于C语言和Win32 API实现贪吃蛇

    C语言字符默认是采用ASCII编码的,ASCII字符集采用的是单字节编码,且只使用了单字节中的低7位,最高位是没有使用的,可表示为0xxxxxxxx;可以看到,ASCII字符集共包含128个字符,在英语国家中...,128个字符是基本够用的,但是,在其他国家语言中,比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。...于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。...不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。...比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(后来为了使C语言适应国际化,C语言的标准中不断加入了国际化的支持。

    64110

    微信小程序蓝牙打印太慢可以这样解决

    最近接到一个需求,客户需要使用打印标签的服务。...需要手机端操作,那样就不能使用厂家驱动来使用了,之前没有接触过打印指令,看了现在商用打印机指令常用的esc/pos挺头疼的,cpcl还好一点不过也需要重新研究。...放弃蓝牙,迎接云打印基于上面原因,蓝牙打印的方法就被放弃了。然后接触到jolimarX的云打印机,支持很多种类的接口,总体来说支持html、esc、json、云模版、图片、pdf等等。...特别是云模版的接口,只需要在开发平台上注册账号,然后在云模版新建一个模版,根据自己需要设计模版。图片设计好模版后点击右上角“打印预览”。图片在预览页底部可以看到,模版 ID、JSON。...打印效果如下:图片我不用再去计算打印像素值和坐标值了,只要把数据传过去就行,太友好了。而且对接期间,发现不能使用调用动态图片,跟他们开发人员沟通后,他们表示这个功能很快就上线了。

    1.6K30

    C语言项目实战——贪吃蛇

    C语言字符默认是采用ASCII编码的,ASCII字符集采用的是单字节编码,且只使用了单字节中的低7位,最高位是没有使用的,可表示为0xxxxxxxx;可以看到,ASCII字符集共包含128个字符,在英语国家中...,128个字符是基本够用的,但是,在其他国家语言中,比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。...于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。...不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。...比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(后来为了使C语言适应国际化,C语言的标准中不断加入了国际化的支持。

    1.1K10

    C++:String类的使用

    随着计算机的发展,不同国家也出现了很多字符编码,但是由于字符编码不同,计算机在不同国家之间的交流变得很困难,经常会出现乱码的问题,比如:对于同一个二进制数据,不同的编码会解析出不同的字符 当互联网迅猛发展...,被定义为将码点编码为 1 至 4 个字节,具体取决于码点数值中有效二进制位的数量 UTF-8 的编码规则: 对于单字节的符号,字节的第一位设为 0,后面 7 位为这个符号的 Unicode 码。...因此对于英语字母,UTF-8 编码和 ASCII 码是相同的, 所以 UTF-8 能兼容 ASCII 编码,这也是互联网普遍采用 UTF-8 的原因之一 对于 n 字节的符号( n > 1),第一个字节的前...剩下的没有提及的二进制位,全部为这个符号的 Unicode 码 2、UTF-16 UTF-16 也是一种变长字符编码, 这种编码方式比较特殊, 它将字符编码成 2 字节 或者 4 字节 具体的编码规则如下...UTF-32就很粗暴,无论什么都是用4个字节,所以足够容纳所有的Unicode字符,虽然浪费了空间,但是不需要任何的编码转换,效率会比较高。但是使用得很少,在C11的时候引入了u32string。

    47510

    【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )

    逗号 隔开 , 并按照指定的顺序 将 转换效果 应用于 正在播放的 音频 ; " 音频滤镜链 " 是一个 描述 音频滤镜 及其 参数 的字符串 , 可以通过 该参数 来 设置 音效 , 调整音量 , 改变音频...aresample=44100 可以将 音频的采样率 从 原始值 改变为 44100 Hz ; aformat=sample_fmts : 强制转换音频样本格式 , 如 : 修改 位深度 和 编码方式...; aformat=sample_fmts=s16 将 播放的音频 转为 16 位 有符号整数 编码 ; ffplay 的 -af 参数主要用于实时应用音频效果 , 如调整音量 / 改变播放速度等...命令行 中 打印 统计信息 , 这些统计信息 包括 显示流的持续时间 编解码器参数 流中的当前位置 音频 / 视频同步差值 ; 该 参数 选项 在默认情况下 是 启用状态 , 在 默认的 视频播放 过程中...编解码器参数 流中的当前位置 音频 / 视频同步差值 ; 执行 ffplay -nostats fengjing.mp4 命令 , 可以关闭 统计信息 ; 在下图中 , 可以看到 下半部分 都是空白的 , 没有打印出

    1.5K10

    Linux设备驱动程序(四)——调试技术

    在我们讲解不同的内核问题跟踪方法时,将再次遇到上述选项。 二、通过打印调试 调试内核代码的时候,可以用printk 来完成相同的工作。...许多与安全相关的状况用这个级别进行汇报。 KERN_INFO 提示性信息。很多驱动程序在启动的时候以这个级别来打印出它们找到的硬件信息。 KERN_DEBUG 用于调试信息。...4、开启及关闭消息 下面给出了一个调用 printk 的编码方法,它可个别或全局地开关 printk 语句;这个技巧是定义一个宏,在需要时,这个宏展开为一个 printk(或printf) 调用: 可以通过在宏名字中删减或增加一个字母来启用或禁用每一条打印语句...esc 中,则该字符会以八进制形式打印。...它不仅可以显示调用,而且还能显示调用参数以及用符号形式表示的返回值。当系统调用失败时,错误的符号值(如ENOMEM)和对应的字符串(如“Out of memory内存溢出”) 都能被显示出来。

    3.1K41

    C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(一)

    在Linux的编程里,管理列表的形式,我们可以使用VT100控制码来进行实现。因为VT100控制码在printf函数中就可以设置显示的行和列,这样实现一个列表选择的GUI界面就非常容易。...我们可以看到像下面这样的GUI菜单式界面,这样的界面用Linux VT100控制码结合C语言是很容易就可以实现出来的。 ? 那么,在Window上想要在控制台实现类似的功能,是否也可以做到呢?...; 用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。...在控制台对应的位置上输出 printf("%s",TITLE); pos.X = 32; pos.Y = 1 ; SetConsoleCursorPosition...case ESC: return ESC ; } return 0 ; } 运行结果: ?

    2.6K10

    爆肝整理!C 语言贪吃蛇从框架到落地全解析,含加速 暂停 计分,直接抄作业

    我们在《WinAPI极简教程》中介绍过可通过函数来调整光标的位置,凭借这个就可以实现居中打印 void Pos(int x, int y) { //获得标准输出设备的句柄 HANDLE houtput...游戏的运行 在游戏运行以前,我们在侧面打印我们的得分情况和游戏规则帮助玩家开始游戏 然后我们检测按键被按下的情况: 如果不是我们蛇头的反方向,修改他的方向 按下space就暂停游戏 按下Esc...60, 14); printf("吃到食物可以得分,加速可以得更高分"); Pos(60, 15); printf("按space键暂停/开始游戏,Esc键退出游戏"); Pos(68,.../开始游戏,Esc键退出游戏"); Pos(68, 20); printf("say-fall分享"); 效果: 2....); pcur = pcur->next; } //在蛇尾位置打印空格覆盖旧蛇 Pos(pcur->next->x, pcur->next->y); printf(" "); //释放后面的蛇尾节点

    30610

    大二必做项目贪吃蛇超详解之中篇游戏设计与分析

    ,128个字符是基本够用的,但是,在其他国家语言中,比如,在法语中,字母上方有注音符号,它就无法用 ASCI码表示。...于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。...不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(汉),在俄语编码中又会代表另一个符号。...但是不管怎样,所有这些编码方式中,0–127表示的符号是一样的,不一样的只是128–255的这一段。至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。...比如,简体中文常见的编码方式是 GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示 256x256=65536 个符号。

    52710

    【C语言指南】ASCII码完整详细介绍

    一、ASCII码的引入 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号...(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则...,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示 二、ASCII码的表达方式 ASCII 码使用指定的7 位或8 位二进制数字组合来表示128 或256...65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。...的大写字母 U 220 334 DC 11011100 Ü Ü 带元音变音 (分音符号) 的大写字母 U 221 335 DD 11011101 Ý Ý 带元音变音 (分音符号)

    2.7K10
    领券