Batch requests can contain binary data e.g. for a media entity. BatchLineReader reads the binary data as a UTF-8 string and BatchRequestTransformator tries to extract the original bytes from the UTF-8 string.
Converting arbitrary binary data into an UTF-8 string and retrieving the bytes from the UTF-8 string will not always return the original bytes the string was created from.
Don't interpret binary data as strings.
I have attached a fix for the testcase for binary data in BatchRequestParserTest which doesn't compare binary data but compares strings.