当前位置:首页 > 工业控制 > 电子设计自动化
[导读]C语言原本是在英文环境中设计的,主要的字符集是7位的ASCII码,8位的byte(字节)是最常见的字符编码单位。但是国际化软件必须能够表示不同的字符,而这些字符数量庞大,无法使用一个字节编码。 C95标准化了两种表示

C语言原本是在英文环境中设计的,主要的字符集是7位的ASCII码,8位的byte(字节)是最常见的字符编码单位。但是国际化软件必须能够表示不同的字符,而这些字符数量庞大,无法使用一个字节编码。

C95标准化了两种表示大型字符集的方法:宽字符(wide character,该字符集内每个字符使用相同的位长)以及多字节字符(multibyte character,每个字符可以是一到多个字节不等,而某个字节序列的字符值由字符串或流(stream)所在的环境背景决定)。

自从1994年的增补之后,C语言不只提供char类型,还提供wchar_t类型(宽字符),此类型定义在stddef.h 头文件中。wchar_t指定的宽字节类型足以表示某个实现版本扩展字符集的任何元素。

在多字节字符集中,每个字符的编码宽度都不等,可以是一个字节,也可以是多个字节。源代码字符集和运行字符集都可能包含多字节字符。多字节字符可以被用于字符的常量、字符串字面值(string literal)、标识符(identifier)、注释(comment),以及头文件。

C语言本身并没有定义或指定任何编码集合,或任何字符集(基本源代码字符集和基本运行字符集除外),而是由其实现指定如何编码宽字符,以及要支持什么类型的多字节字符编码机制。

虽然C标准没有支持Unicode字符集,但是许多实现版本使用Unicode转换格式UTF-16和UTF-32来处理宽字符。如果遵循Unicode标准,wchar_t类型至少是16或32位长,而wchar_t类型的一个值就代表一个Unicode字符。

UTF-8是一个由Unicode Consortium(万国码联盟)定义的实现,可以表示Unicode字符集的所有字符。UTF-8字符所使用的空间大小从一个字节到四个字节都有可能。

多字节字符和宽字符(也就是wchar_t)的主要差异在于宽字符占用的字节数目都一样,而多字节字符的字节数目不等,这样的表示方式使得多字节字符串比宽字符串更难处理。比方说,即使字符'A'可以用一个字节来表示,但是要在多字节的字符串中找到此字符,就不能使用简单的字节比对,因为即使在某个位置找到相符合的字节,此字节也不见得是一个字符,它可能是另一个不同字符的一部分。然而,多字节字符相当适合用来将文字存储成文件。

C提供了一些标准函数,可以将多字节字符转换为wchar_t,或将宽字符转换为多字节字符。比方说,如果C 编译器使用Unicode 标准的UTF-16 和UTF-8,那么下面调用wctomb()函数就可以获得字符的多字节表示方式(注:wctomb = wide character to multibyte)。



来源:ks993次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

这是FPGA之旅的第十一例了。在前面的例子中,已经对OLED有了一个基础的了解,本例将介绍如何在OLED上实现支符的显示,为后面的例程做准备。

关键字: FPGA OLED 字符

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,事实上所有带有数字接口的设备,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整...

关键字: 嵌入式 语言 技术

语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后...

关键字: 语音编码器 PCM 语言

模糊控制算法(理论知识)

关键字: 模糊控制 语言

任何一种“语言”,都是各种“语言特性”的组合。

关键字: 程序 语言 嵌入式

由于新冠疫情,口罩已经成为了一种日常用品。而日本似乎十分热衷于研究不同类型的口罩,例如为了应对夏季的“冰镇口罩”和带微型电扇的口罩,还有为了女性美观研发的“小脸美口罩”。 8月4日,据媒体报道,日本一

关键字: 口罩 日本 智能 翻译 语言

研究表明,人在老年时学习第二语言也可以改善认知功能。 虽然我们大多数人都容易学会技术,但学习语言从未如此简单。

关键字: Android 语言 verbling

航科院民用无人机检验中心在湖北武汉对易瓦特科技股份公司的EWZ-S8八旋翼无人机进行了无人机系统安全能力二级围栏检验。本次检验耗时3个多小时。检验中心检验员针对EWZ-S8八旋翼无人机进行了无人

关键字: 无人机 语言

什么是51单片机?它有什么注意事项?编程也好设计也罢,都要有遵循的规则。可以发挥自己的创新但是要顾全大局,不能随意的编程。下面分享关于51单片机编程的一些规则,希望能帮到大家,避免大家四处碰壁。

关键字: 51单片机 编程 语言

1月15日,打着中科院计算所出品、完全自主开发旗号的国产编程语言“木兰”引发广泛关注,但很快被发现是基于Python语言套壳、换皮而来的产物。 面对质疑,中科院计算所编译实验室员工、“木兰”语言研发团

关键字: 中科院 国产 木兰 编程 语言 刘雷 计算所 重罚
关闭
关闭