From 154157b9764ea94207a0d451ab3fc3ecd65483a2 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Wed, 13 Oct 2021 01:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=96=B0=E5=A2=9Ehex=E8=BD=ACutf8=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/stringExtend.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Zframework/stringExtend.lua b/Zframework/stringExtend.lua index 07ed241e..de15776d 100644 --- a/Zframework/stringExtend.lua +++ b/Zframework/stringExtend.lua @@ -69,6 +69,20 @@ function STRING.time(t) end end +function STRING.hexToUTF8(str)--[LOW PERFORMENCE] hex unicode to UTF8 + assert(type(str)=='string',"Wrong input: "..tostring(str)) + local n=tonumber(str,16) + assert(n and n==int(n),"Wrong unicode str: "..str) + if n<2^7 then return char(n) + elseif n<2^11 then return char(128+64+int(n/2^6),128+n%2^6) + elseif n<2^16 then return char(128+64+32+int(n/2^12),128+int(n/2^6)%2^6,128+n%2^6) + elseif n<2^21 then return char(128+64+32+16+int(n/2^18),128+int(n/2^12)%2^6,128+int(n/2^6)%2^6,128+n%2^6) + elseif n<2^26 then return char(128+64+32+16+8+int(n/2^24),128+int(n/2^18)%2^6,128+int(n/2^12)%2^6,128+int(n/2^6)%2^6,128+n%2^6) + elseif n<2^31 then return char(128+64+32+16+8+4+int(n/2^30),128+int(n/2^24)%2^6,128+int(n/2^18)%2^6,128+int(n/2^12)%2^6,128+int(n/2^6)%2^6,128+n%2^6) + else error("Wrong unicode str: "..str) + end +end + do--function STRING.bigInt(t) local lg=math.log10 local units={"","K","M","B","T","Qa","Qt","Sx","Sp","Oc","No"}