FormatString(字符串格式化)
# 简介
比特( bit)是二进制单位( binary unit)或二进制数字(binary digit)的缩写,pack 库支持将一系列数据按照格式字符转化为 lua 字符串或者将 lua 字符串按照格式字符转化成一系列值,utf8、 ucs2、 gb2312编码是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求:以上都是常见的数据格式。需要进行运算、转换等格式化处理。
# API说明
- bit
|API接口| 描述|
| --- | --- |
|bit.bit()|左移运算,等价于C语言中的1 << position|
|bit.isset()|测试位数是否被置1|
|bit.isclear()|位数是否被置0|
|bit.set()|置1|
|bit.clear()|置0|
|bit.bnot()|取反|
|bit.band()|与|
|bit.bor()|或|
|bit.bxor()|异或|
|bit.lshift()|左移|
|bit.rshift()|右移|
|bit.arshift()|算数右移|
> 详细的API介绍见[bit API章节](https://doc.openluat.com/wiki/21?wiki_page_id=2253 "bit API章节")
- 扩展库pack
|API接口| 描述|
| --- | --- |
|pack.pack()|打包字符串的值,在pack的时候有符号 无符号的输出结果都是一样的 unpack时有符号跟无符号才有区别|
|pack.unpack()|解包字符串|
> 详细的API介绍见[pack API章节](https://doc.openluat.com/wiki/21?wiki_page_id=2252 "pack API章节")
- 编码格式转换库
|API接口| 描述|
| --- | --- |
|common.ucs2ToGb2312(ucs2s)|unicode小端编码 转化为 gb2312编码|
|common.gb2312ToUcs2(gb2312s)|gb2312编码 转化为 unicode小端编码|
|common.ucs2beToGb2312(ucs2s)|unicode大端编码 转化为 gb2312编码|
|common.gb2312ToUcs2be(gb2312s)|gb2312编码 转化为 unicode大端编码|
|common.ucs2ToUtf8(ucs2s)|unicode小端编码 转化为 utf8编码|
|common.utf8ToUcs2(utf8s)|utf8编码 转化为 unicode小端编码|
> 详细的API介绍见[common API章节](https://doc.openluat.com/wiki/21?wiki_page_id=2269 "common API章节")
## 实现流程
调用相应接口。
## 示例
[demo讲解](http://doc.openluat.com/wiki/21?wiki_page_id=2171"demo讲解")
## 常见问题
1、字符串打印为空。原因是字符串里有不可见字符比如“空字符(Null)”,解决方式toHex()后打印。