我必须使用 Qt 框架读取由 C++ 应用程序编写的二进制文件。数据由 C 结构构成,如下所述。字符是从 C++ 应用程序中的 QString 指针写入的。
struct panelSystem{
char ipAddress[16];
char netMask[16];
char gateway[16];
char paddingBytes[128];
};
我尝试使用以下 PHP 代码来读取多字节字符值:
// Where: $length is a defined number (16 or 128 in this case)
// $data is a binary string read from the binary file
$var = substr($data, $currentOffset, $length);
$currentOffset += $length; // Increment offset by X bytes
$var = trim(str_replace("\0", "\n", $var));
$var = unpack("C*", $var);
$char = '';
foreach ($var as $letter) {
$char .= chr($letter);
}
$var = $char;
不幸的是,结果包括空 (\0) 和/或所需字符前后的不相关字符。
有没有办法将这些字符从 QString 多字节数组解释或转换为 PHP 标准字符串(不修改原始输入)?
谢谢你。