JS解密方法翻译成C#

问题描述 投票:0回答:3

我需要一些将 JS 代码转换为 C# 的帮助。 JS 代码:

function Decription(string) {
            var newString = '',
                char, codeStr, firstCharCode, lastCharCode;
            var ft = escape(string);
            string = decodeURIComponent(ft);
            for (var i = 0; i < string.length; i++) {
                char = string.charCodeAt(i);
                if (char > 132) {
                    codeStr = char.toString(10);
                    firstCharCode = parseInt(codeStr.substring(0, codeStr.length - 2), 10);
                    lastCharCode = parseInt(codeStr.substring(codeStr.length - 2, codeStr.length), 10) + 31;
                    newString += String.fromCharCode(firstCharCode) + String.fromCharCode(lastCharCode);
                } else {
                    newString += string.charAt(i);
                }
            }
            return newString;
        }

我还需要在 C# 上进行翻译:

private string Decription(string encriptedText)
        {
            string ft = Regex.Escape(encriptedText);
            string text = HttpUtility.UrlDecode(ft);
            string newString = "";

            for (int i = 0; i < text.Length; i++)
            {
                var ch = (int)text[i];
                if(ch > 132)
                {
                    var codeStr = Convert.ToString(ch, 10);
                    var firstCharCode = Convert.ToInt32(codeStr.Substring(0, codeStr.Length - 2), 10);
                    var lastCharCode = Convert.ToInt32(codeStr.Substring(codeStr.Length - 2, codeStr.Length), 10) + 31;
                }
            }

        }

但是我如何翻译这一行:

newString += String.fromCharCode(firstCharCode) + String.fromCharCode(lastCharCode);

也许您知道 C# 上与 String.fromCharCode() 等效的方法吗?

c# .net
3个回答
1
投票

给你:

public static void Main()
{
    // from 97 to a
    int i = 97;
    Console.WriteLine(StringFromCharCode(97));
}

public static string StringFromCharCode(int code) => ((char)code).ToString();

演示

请注意,在您的情况下,您可能需要使用

StringBuilder
而不是连接
string

与 C# 中的 Int 到 Char 相关(阅读它。其中包含关于强制转换与

Convert.ToChar
的精彩评论)


0
投票

您可以简单地使用

Convert.ToChar
方法,
Convert.ToChar(97)
将返回
a


0
投票

函数decrypt_data(字符串){

  var newString = '',
  char, codeStr, firstCharCode, lastCharCode;
  string = string.match(/.{1,4}/g).reduce((acc,char)=>acc+String.fromCharCode(parseInt(char, 16)),"");
  for (var i = 0; i < string.length; i++) {
  char = string.charCodeAt(i);
  if (char > 132) {
  codeStr = char.toString(10);

  firstCharCode = parseInt(codeStr.substring(0, codeStr.length - 2), 10);

  lastCharCode = parseInt(codeStr.substring(codeStr.length - 2, codeStr.length), 10) + 31;

  newString += String.fromCharCode(firstCharCode) + String.fromCharCode(lastCharCode);
  } else {
  newString += string.charAt(i);
  }
  }
  return newString;
  }
© www.soinside.com 2019 - 2024. All rights reserved.