Qtフレームワークを使用してC++アプリケーションで作成されたバイナリファイルを読み込む必要があります。データは、後述のC構造体から構造化されています。 Charsは、C++アプリケーションのQStringポインタから書き込まれます。PHPでC++のQStringバイナリデータを読む
struct panelSystem{
char ipAddress[16];
char netMask[16];
char gateway[16];
char paddingBytes[128];
};
Iは、マルチバイト文字値を読み取るために、次の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の標準文字列に変換する方法はありますか?
ありがとうございます。