main.lua 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "my_test"
  3. VERSION = "1.2"
  4. PRODUCT_KEY = "s1uUnY6KA06ifIjcutm5oNbG3MZf5aUv" -- 换成自己的
  5. -- sys库是标配
  6. _G.sys = require("sys")
  7. _G.sysplus = require("sysplus")
  8. --- unicode小端编码 转化为 gb2312编码
  9. -- @string ucs2s unicode小端编码数据
  10. -- @return string data,gb2312编码数据
  11. -- @usage local data = common.ucs2ToGb2312(ucs2s)
  12. function ucs2ToGb2312(ucs2s)
  13. local cd = iconv.open("gb2312", "ucs2")
  14. return cd:iconv(ucs2s)
  15. end
  16. --- gb2312编码 转化为 unicode小端编码
  17. -- @string gb2312s gb2312编码数据
  18. -- @return string data,unicode小端编码数据
  19. -- @usage local data = common.gb2312ToUcs2(gb2312s)
  20. function gb2312ToUcs2(gb2312s)
  21. local cd = iconv.open("ucs2", "gb2312")
  22. return cd:iconv(gb2312s)
  23. end
  24. --- unicode大端编码 转化为 gb2312编码
  25. -- @string ucs2s unicode大端编码数据
  26. -- @return string data,gb2312编码数据
  27. -- @usage data = common.ucs2beToGb2312(ucs2s)
  28. function ucs2beToGb2312(ucs2s)
  29. local cd = iconv.open("gb2312", "ucs2be")
  30. return cd:iconv(ucs2s)
  31. end
  32. --- gb2312编码 转化为 unicode大端编码
  33. -- @string gb2312s gb2312编码数据
  34. -- @return string data,unicode大端编码数据
  35. -- @usage local data = common.gb2312ToUcs2be(gb2312s)
  36. function gb2312ToUcs2be(gb2312s)
  37. local cd = iconv.open("ucs2be", "gb2312")
  38. return cd:iconv(gb2312s)
  39. end
  40. --- unicode小端编码 转化为 utf8编码
  41. -- @string ucs2s unicode小端编码数据
  42. -- @return string data,utf8编码数据
  43. -- @usage data = common.ucs2ToUtf8(ucs2s)
  44. function ucs2ToUtf8(ucs2s)
  45. local cd = iconv.open("utf8", "ucs2")
  46. return cd:iconv(ucs2s)
  47. end
  48. --- utf8编码 转化为 unicode小端编码
  49. -- @string utf8s utf8编码数据
  50. -- @return string data,unicode小端编码数据
  51. -- @usage local data = common.utf8ToUcs2(utf8s)
  52. function utf8ToUcs2(utf8s)
  53. local cd = iconv.open("ucs2", "utf8")
  54. return cd:iconv(utf8s)
  55. end
  56. --- unicode大端编码 转化为 utf8编码
  57. -- @string ucs2s unicode大端编码数据
  58. -- @return string data,utf8编码数据
  59. -- @usage data = common.ucs2beToUtf8(ucs2s)
  60. function ucs2beToUtf8(ucs2s)
  61. local cd = iconv.open("utf8", "ucs2be")
  62. return cd:iconv(ucs2s)
  63. end
  64. --- utf8编码 转化为 unicode大端编码
  65. -- @string utf8s utf8编码数据
  66. -- @return string data,unicode大端编码数据
  67. -- @usage local data = common.utf8ToUcs2be(utf8s)
  68. function utf8ToUcs2be(utf8s)
  69. local cd = iconv.open("ucs2be", "utf8")
  70. return cd:iconv(utf8s)
  71. end
  72. --- utf8编码 转化为 gb2312编码
  73. -- @string utf8s utf8编码数据
  74. -- @return string data,gb2312编码数据
  75. -- @usage local data = common.utf8ToGb2312(utf8s)
  76. function utf8ToGb2312(utf8s)
  77. local cd = iconv.open("ucs2", "utf8")
  78. local ucs2s = cd:iconv(utf8s)
  79. cd = iconv.open("gb2312", "ucs2")
  80. return cd:iconv(ucs2s)
  81. end
  82. --- gb2312编码 转化为 utf8编码
  83. -- @string gb2312s gb2312编码数据
  84. -- @return string data,utf8编码数据
  85. -- @usage local data = common.gb2312ToUtf8(gb2312s)
  86. function gb2312ToUtf8(gb2312s)
  87. local cd = iconv.open("ucs2", "gb2312")
  88. local ucs2s = cd:iconv(gb2312s)
  89. cd = iconv.open("utf8", "ucs2")
  90. return cd:iconv(ucs2s)
  91. end
  92. --------------------------------------------------------------------------------------------------------
  93. --[[
  94. 函数名:ucs2ToGb2312
  95. 功能 :unicode小端编码 转化为 gb2312编码,并打印出gb2312编码数据
  96. 参数 :
  97. ucs2s:unicode小端编码数据,注意输入参数的字节数
  98. 返回值:
  99. ]]
  100. local function testucs2ToGb2312(ucs2s)
  101. print("ucs2ToGb2312")
  102. local gb2312num = ucs2ToGb2312(ucs2s)--调用的是common.ucs2ToGb2312,返回的是编码所对应的字符串
  103. --print("gb2312 code:",gb2312num)
  104. print("gb2312 code:",string.toHex(gb2312num))
  105. end
  106. --[[
  107. 函数名:gb2312ToUcs2
  108. 功能 :gb2312编码 转化为 unicode十六进制小端编码数据并打印
  109. 参数 :
  110. gb2312s:gb2312编码数据,注意输入参数的字节数
  111. 返回值:
  112. ]]
  113. local function testgb2312ToUcs2(gb2312s)
  114. print("gb2312ToUcs2")
  115. local ucs2num = gb2312ToUcs2(gb2312s)
  116. print("unicode little-endian code:" .. string.toHex(ucs2num)) -- 要将二进制转换为十六进制,否则无法输出
  117. end
  118. --[[
  119. 函数名:ucs2beToGb2312
  120. 功能 :unicode大端编码 转化为 gb2312编码,并打印出gb2312编码数据,
  121. 大端编码数据是与小端编码数据位置调换
  122. 参数 :
  123. ucs2s:unicode大端编码数据,注意输入参数的字节数
  124. 返回值:
  125. ]]
  126. local function testucs2beToGb2312(ucs2s)
  127. print("ucs2beToGb2312")
  128. local gb2312num = ucs2beToGb2312(ucs2s) -- 转化后的数据直接变成字符可以直接输出
  129. print("gb2312 code :" .. string.toHex(gb2312num))
  130. end
  131. --[[
  132. 函数名:gb2312ToUcs2be
  133. 功能 :gb2312编码 转化为 unicode大端编码,并打印出unicode大端编码
  134. 参数 :
  135. gb2312s:gb2312编码数据,注意输入参数的字节数
  136. 返回值:unicode大端编码数据
  137. ]]
  138. function testgb2312ToUcs2be(gb2312s)
  139. print("gb2312ToUcs2be")
  140. local ucs2benum = gb2312ToUcs2be(gb2312s)
  141. print("unicode big-endian code :" .. string.toHex(ucs2benum))
  142. end
  143. --[[
  144. 函数名:ucs2ToUtf8
  145. 功能 :unicode小端编码 转化为 utf8编码,并打印出utf8十六进制编码数据
  146. 参数 :
  147. ucs2s:unicode小端编码数据,注意输入参数的字节数
  148. 返回值:
  149. ]]
  150. local function testucs2ToUtf8(usc2s)
  151. print("ucs2ToUtf8")
  152. local utf8num = ucs2ToUtf8(usc2s)
  153. print("utf8 code:" .. string.toHex(utf8num))
  154. end
  155. --[[
  156. 函数名:utf8ToGb2312
  157. 功能 :utf8编码 转化为 gb2312编码,并打印出gb2312编码数据
  158. 参数 :
  159. utf8s:utf8编码数据,注意输入参数的字节数
  160. 返回值:
  161. ]]
  162. local function testutf8ToGb2312(utf8s)
  163. print("utf8ToGb2312")
  164. local gb2312num = utf8ToGb2312(utf8s)
  165. print("gb2312 code:" .. string.toHex(gb2312num))
  166. end
  167. --[[
  168. 函数名:gb2312ToUtf8
  169. 功能 :gb2312编码 转化为 utf8编码,并打印出utf8编码数据
  170. 参数 :
  171. gb2312s:gb2312s编码数据,注意输入参数的字节数
  172. 返回值:
  173. ]]
  174. local function testgb2312ToUtf8(gb2312s)
  175. print("gb2312ToUtf8")
  176. local utf8s = gb2312ToUtf8(gb2312s)
  177. print("utf8s code:" .. utf8s)
  178. end
  179. sys.taskInit(function()
  180. while 1 do
  181. sys.wait(1000)
  182. testucs2ToGb2312(string.fromHex("1162")) -- "1162"是"我"字的ucs2编码,这里调用了string.fromHex将参数转化为二进制,也就是两个字节。
  183. testgb2312ToUcs2(string.fromHex("CED2")) -- "CED2"是"我"字的gb2312编码
  184. testucs2beToGb2312(string.fromHex("6211")) -- "6211"是"我"字的ucs2be编码
  185. testgb2312ToUcs2be(string.fromHex("CED2"))
  186. testucs2ToUtf8(string.fromHex("1162"))
  187. testutf8ToGb2312(string.fromHex("E68891")) -- "E68891"是"我"字的utf8编码
  188. testgb2312ToUtf8(string.fromHex("CED2"))
  189. end
  190. end)
  191. -- 用户代码已结束---------------------------------------------
  192. -- 结尾总是这一句
  193. sys.run()
  194. -- sys.run()之后后面不要加任何语句!!!!!