Qt フレームワークを使用して C++ アプリで記述されたバイナリ ファイルを読み取る必要があります。以下に説明するように、データは C 構造体から構造化されます。文字は、C++ アプリの QString ポインターから書き込まれます。
struct panelSystem{
char ipAddress[16];
char netMask[16];
char gateway[16];
char paddingBytes[128];
};
次のPHPコードを使用して、マルチバイトのchar値を読み取ってみました:
// 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;
残念ながら、結果には、目的の文字の前後に null (\0) および/または無関係な文字が含まれています。
これらの文字を QString マルチバイト配列から PHP 標準文字列に (元の入力を変更せずに) 解釈または変換する方法はありますか?
ありがとうございました。