gpt4 book ai didi

c# - 在 PHP 中将 int 转换为 char 在 C# 中有不同的输出

转载 作者:搜寻专家 更新时间:2023-10-31 20:41:14 26 4
gpt4 key购买 nike

我有一个 PHP 脚本,我已手动将其转换为 C#hexSalthexFull 变量的输出打印相同,但变量 data 的输出不同。我发现在将 int 变量转换为 char 时问题仍然存在。这些有什么不同?

我已经尝试在 C# 中转换它们并以多种方式转换它们,例如:Char.ConvertFromUtf32(int), Convert.ToChar(int), (char)int
但它们显示的是相同的不完整 C# 输出。

C#

string data = "";
string saltFull = "";
string hexFull = "";

char[] saltChars = salt.ToCharArray();
for (int i = 0; i < (salt.Length / 2); i++)
{
string hexSalt = saltChars[i * 2].ToString() + saltChars[(i * 2) + 1].ToString();
saltFull += hexSalt;

int hex = int.Parse(hexSalt, NumberStyles.HexNumber);
hexFull += hex.ToString();

char chr = (char)hex;
data += chr;
}

Response.Write(saltFull + "<br />"); // Same output
Response.Write(hexFull + "<br />"); // Same output
Response.Write(data); // Almost the same output...

// Output of variable data, the converted int to char.
// ¸:}P/C{_ëóCZÔfPüY£Y,Ö]·î~9ªuJb®é­I[p¢?0ZÖµz²ð4

PHP

$data = "";
$saltFull = "";
$hexFull = "";

for ($i = 0; $i < strlen($salt) / 2; $i++) {
$hexSalt = $salt[$i * 2] . $salt[($i * 2) + 1];
$saltFull .= $hexSalt;

$hex = hexdec($hexSalt);
$hexFull .= $hex;

$chr = chr($hex);
$data .= $chr;
}

echo $saltFull . "<br />"; // Same output
echo $hexFull . "<br />"; // Same output
echo $data; // Almost the same output...

// Output of variable data, the converted int to char.
// ¸ˆ:}Pž/CŽ”“{_ëóCZ‹ÔfP€üY£Y,Ö]·î~9ªuJb®é­I[p¢?0ZÖµz²ð…4

附加信息:

  • 我正在同一个浏览器中测试它
  • 我在同一台服务器上运行这两种代码。
  • 我无法编辑 PHP 代码
  • 我不能换盐

最佳答案

问题解决了!!

byte[] chr = BitConverter.GetBytes(hex);
data += Encoding.Default.GetString(chr);

我将 int 转换为 byte[] 数组,并使用 GetString(byte[]) 方法获取字符串。

关于c# - 在 PHP 中将 int 转换为 char 在 C# 中有不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com