Sure! BinaryBuilder builder; char d[] = "\x00\x01\xbf\x5b”; (void)(builder.Append(d)); std::shared_ptr<Array> array; (void)(builder.Finish(&array)); int32_t dataLength = 0; auto aarray = std::static_pointer_cast<BinaryArray>(array); const uint8_t* data = aarray->GetValue(0, &dataLength); data = aarray->GetValue(3, &dataLength); RecordProperty("l3", dataLength); RecordProperty("30", data[0]); RecordProperty("31", data[1]); RecordProperty("32", data[2]); RecordProperty("33", data[3]);
We need Google Test to use RecordProperty. dataLength is 0 instead of 4 and data[i] are 255, 0, 0 and 0 respectively. My JIRA ID is yingzhou474. > On Nov 18, 2020, at 1:49 PM, Antoine Pitrou <anto...@python.org> wrote: > > > Hello, > > Le 18/11/2020 à 19:06, Ying Zhou a écrit : >> >> According to the documentation BINARY is "Variable-length bytes (no >> guarantee of UTF8-ness)”. However in practice if I embed 0x00 in the middle >> of a char array and Append it to a BinaryBuilder the 0x00 is converted to >> 0xff, everything after it is not appended and the length is computed as if >> the 0x00 and everything after it don’t exist (i.e. standard STRING behavior). > > Can you post some code showing how you build the array? > >> P.S. Please allow me to assign Jira tickets to myself. Really thanks! > > What is your JIRA id? > > Regards > > Antoine.