C语言的多字节字符(multibyte characters)是什么
3个回答
展开全部
指多个字节表示一个字符的字符集。
西方文字就是一个字节表示一个字符,就比如 ASCII字符集。
而东亚一些国家和地区的文字,很多都是多个字节表示一个字符,比如中文、韩文、日文等,因为不是简单的应文字母加上标点服后就够用的,比如汉字常用的就几千个,一个字节就表示不了,这就需要使用多个字节表示一个汉字,这就是一种多字节字符集。
西方文字就是一个字节表示一个字符,就比如 ASCII字符集。
而东亚一些国家和地区的文字,很多都是多个字节表示一个字符,比如中文、韩文、日文等,因为不是简单的应文字母加上标点服后就够用的,比如汉字常用的就几千个,一个字节就表示不了,这就需要使用多个字节表示一个汉字,这就是一种多字节字符集。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-28
展开全部
多字节字符是使国际化的程序更容易编写的另一种途径。具体地说,它们有助于支持永远无法纳入8位字符的语言,例如汉语和日语。如果你的程序永远不需要使用除英语之外的其它任何语言,你可以不必了解多字节字符。
你不得不承认这样一个事实:可能到处都有人想使用你的软件,但并不是人人都懂英语。幸运的是,已经有了可以把欧洲语言的各种特殊字符纳入8位字符集的标准(不幸的是,这样的标准有好几种,并且它们相互并不一致)。
到了亚洲,这个问题变得更复杂。有些语言的字符超过256个,例如汉语和日语,它们永远无法纳入8位字符集中(一个8位字符能存放O和255之间的一个数字,因此它能只有256种不同的值)。
幸运的是,C标准库已经开始解决这个问题。<stddef.h>定义了wchar_t类型,它的长度足以存放c程序能处理的任何语言中的任何字符。根据到目前为止的所有协议,16位已经足够了。这通常就是short类型,但最好还是相信编译程序开发商所提供的wchar_t的正确性,以免在short类型的长度发生变化时遇到麻烦。
函数mblen(),mbtowc()和wctomb()能将单字节字符串转换为多字节字符。如果你想了解更多的有关这些函数的信息,请查阅你的编译程序手册。
你不得不承认这样一个事实:可能到处都有人想使用你的软件,但并不是人人都懂英语。幸运的是,已经有了可以把欧洲语言的各种特殊字符纳入8位字符集的标准(不幸的是,这样的标准有好几种,并且它们相互并不一致)。
到了亚洲,这个问题变得更复杂。有些语言的字符超过256个,例如汉语和日语,它们永远无法纳入8位字符集中(一个8位字符能存放O和255之间的一个数字,因此它能只有256种不同的值)。
幸运的是,C标准库已经开始解决这个问题。<stddef.h>定义了wchar_t类型,它的长度足以存放c程序能处理的任何语言中的任何字符。根据到目前为止的所有协议,16位已经足够了。这通常就是short类型,但最好还是相信编译程序开发商所提供的wchar_t的正确性,以免在short类型的长度发生变化时遇到麻烦。
函数mblen(),mbtowc()和wctomb()能将单字节字符串转换为多字节字符。如果你想了解更多的有关这些函数的信息,请查阅你的编译程序手册。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询