字符串处理模块(仅支持 iOS)
函数名称:tohex、fromhex
函数功能:转码,字符串十六进制编码转换
函数用例
local sz = require("sz")
local str = "触动精灵"
--仅支持 iOS
dialog('"'..str..'" 的 16 进制编码为: <'..str:tohex()..'>', 0) --“触动精灵”的 16 进制编码
dialog('<'..str:tohex()..'> 转换成明文为: "'..str:tohex():fromhex()..'"', 0)--将上一行的 16 进制编码转换为明文字符
函数名称:md5
函数功能:字符串 MD5 计算
函数用例
local sz = require("sz")
local str = "触动精灵"
local binstr = "\0\1\2\3\4\5"
dialog('"'..str..'" 的 MD5 值是: '..str:md5(), 0)--计算"触动精灵"的 MD5 值
dialog('<'..binstr:tohex()..'> 的 MD5 值是: '..binstr:md5(), 0)--计算“000102030405”的 MD5 值
函数名称:sha1
函数功能:字符串 SHA1 计算
函数用例
local sz = require("sz")
local str = "触动精灵"
local binstr = "\0\1\2\3\4\5"
dialog('"'..str..'" 的 SHA1 值是: '..str:sha1(), 0)--计算"触动精灵"的 SHA1 值
dialog('<'..binstr:tohex()..'> 的 SHA1 值是: '..binstr:sha1(), 0) --计算“000102030405”的 SHA1 值
函数名称:aes128_encrypt、aes128_decrypt、base64_encode、base64_decode
函数功能:字符串 AES128、BASE64 编解码
函数用例
local sz = require("sz")
local msg = "\5\4\3\2\1\0"
local key = "触动精灵"
local emsg = msg:aes128_encrypt(key)
--仅支持 iOS
local emsgb64 = emsg:base64_encode()
dialog('二进制数据<'..msg:tohex()..'> \n 使用 AES128 算法 密钥 "'..key..'" 加密 值是: <'..emsg:tohex()..'> \n base64 串为 "'..emsgb64..'"', 0)
local tmp = emsgb64:base64_decode()
msg = tmp:aes128_decrypt(key)
dialog('"'..emsgb64..'" base64 解码后的数据为 <'..tmp:tohex()..'> \n使用 AES128 算法 密钥 "'..key..'" 解密 值是: <'..msg:tohex()..'>', 0)
函数名称:split、rtrim、ltrim、trim、atrim
函数功能:字符串分割、过滤
函数用例 字符串分割及空白字符过滤
local sz = require("sz")
str = " 哈哈,he he,1,3,6 "
new = str:split(",") --将字符串str按照 `,` 分割并返回一个TABLE
dialog(new[2], 0)
dialog(str:rtrim(), 0) -- 结果 " 哈哈,he he,1,3,6" ,删除字符串尾部的空白字符
dialog(str:ltrim(), 0) -- 结果 "哈哈,he he,1,3,6 " ,删除字符串首部的空白字符
dialog(str:trim(), 0) -- 结果 "哈哈,he he,1,3,6" ,删除字符串首尾的空白字符
dialog(str:atrim(), 0) -- 结果 "哈哈,hehe,1,3,6" ,删除字符串所有的空白字符
名词解析
空白字符包括:空格、制表符 \t
、换行符 \n
、\r
。
函数名称:fromgbk
函数功能:转码,GBK 转 UTF8
函数用例 将字符串从 GBK 编码转换到 UTF8 编码(引擎版本 iOS v2.2.6 以上版本)
require "sz"
f = io.open("/var/mobile/Media/TouchSprite/res/a.txt", "r")
s = f:read("*a")
f:close()
dialog(s:fromgbk())
函数名称:iconv
函数功能:字符集转换
函数用例
--此功能需引擎版本 iOS v2.2.7 以内置版本带的苏泽库支持方可使用
local sz = require("sz")
local iconv = sz.iconv
local cd = iconv.new("utf8", "gbk") --新建一个 gbk 到 utf8 编码的转换器
local f = io.open("/var/mobile/Media/TouchSprite/res/1.txt", "rb")
local s = f:read("*a")
f:close()
dialog(cd:iconv(s))