我在lua中有一个简单的代码,我需要将其转换为C#,但由于我不理解lua代码,因此我无法执行此操作。 代码是:
function ToText(str)
local res = ""
local dtable = "4\rw+6d\b2aQ9\025\006Lu35\"$xPS)[@Y\024'G7U\001c\000W>1ti*=\021\020kB&\004e\019\031pE%D`H\003.<\016\026\023\017bN:\a,8(jm{\028r\014l- ]v\002f|\029R\vZy\005V^\n#C}~g_oz;\030hO\\As\f0!/X?\tMq\022IKTn\018\027J\015F"
for i = 1, #str do
local b = str:byte(i)
if b > 0 and b <= 127 then
res = res .. string.char(dtable:byte(b))
else
res = res .. string.char(b)
end
end
return res
end
答案 0 :(得分:0)
逐字翻译大概就是这样,虽然我仍然不确定这个public static string ToText(this string str)
{
var result = new StringBuilder();
var dtable = "4\rw+6d\b2aQ9\025\006Lu35\"$xPS)[@Y\024'G7U\001c\000W>1ti*=\021\020kB&\004e\019\031pE%D`H\003.<\016\026\023\017bN:\a,8(jm{\028r\014l- ]v\002f|\029R\vZy\005V^\n#C}~g_oz;\030hO\\As\f0!/X?\tMq\022IKTn\018\027J\015F";
foreach(Char c in str)
{
var byteValue = Convert.ToByte(c);
if(byteValue > 0 && byteValue <= 127(
{
result.Append(dtable[byteValue]);
}
else
{
result.Append(c);
}
}
return result;
}
变量你可能想检查LUA是如何逃脱的。
postMessage