我必須使用Qt框架讀取由C++應用程序編寫的二進制文件。數據由C結構構建,如下所述。字符是從C++應用程序中的QString指針寫入的。用PHP讀取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標準字符串(不需要修改原始輸入)?
謝謝。