Module:Str2code

此后如竟没有炬火,我便是唯一的光。

此模块的文档可以在Module:Str2code/doc创建

local p = {}
local getArgs = require('Module:Arguments').getArgs

function p.str2code(strin)  --转换字符到unicode码位,仅支持第一平面字符
    if(math.modf(string.byte(strin,1)/16)==14)then
        return (string.byte(strin,1)-224)*4096+(string.byte(strin,2)-128)*64+(string.byte(strin,3)-128)
    elseif(math.modf(string.byte(strin,1)/32)==6)then
        return (string.byte(strin,1)-192)*64+(string.byte(strin,2)-128)
    else
        return string.byte(strin,1)
    end
end

function p.string2code(frame)  --输出为十进制,可用于后续计算
	local args = getArgs(frame)
	local text = args[1]
    return string.format("%d",p.str2code(text))
end

function p.string2xcode(frame)  --输出为十六进制
	local args = getArgs(frame)
	local text = args[1]
    return string.format("%x",p.str2code(text))
end

return p