&gt; The whole point of cat is to concatenate files.<p>Yes.<p>&gt; So you want cat to error out if one of the files that was passed has a different encoding.<p>No. I expect it to read bits from stream A until it is exhausted and then read bits from stream B until it is exhausted. All the time just writing the ones and zeros read to the output stream (of bits). And no, a byte does not have to be &quot;8 bit&quot; (<a href="http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_by_by.htm" rel="nofollow">http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_by_b...</a>).