$s = encode('UTF-16LE', "first name string\0").encode('UTF-16LE', "middle name string\0"). encode('UTF-16LE', "last name string\0").pack('V', 3654877182).pack('V', 1).encode('UTF-16LE', "address string\0")."zip code ascii\0".pack('V',1); $decodedStr = decode('UTF-16LE', $s, Encode::FB_CROAK); print Dumper([unpack('Z*Z*Z*VVZ*Z*V',$decodedStr)]);