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

标签 c# php char

我有一个 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/

相关文章:

c# - 如何检查我的 C#/WPF 应用程序需要多少 RAM?

javascript - Chart.JS 无法读取未定义的属性 '_meta'

c - 交换两个字符

检查一个字符是否为换行符

php - 从哪里获得 PHP 7.2 的 php_mcrypt.dll?

c - 在 C 结构体中分配 char

c# - 以编程方式启用/禁用连接

c# - 银光。绑定(bind)到数据对象的附加属性,不输入 getter

c# - 非 JavaScript 应用程序中的 JSON

php - Zend Framework 从 Zend_View_Helper 调用 View 助手