A month of exports can arrive in three different encodings: one tool writes UTF-8, another writes Windows-1252, a legacy system writes GBK, and a Windows application writes UTF-16. Concatenating them byte-for-byte produces a file where part of the text is unreadable.
Download free trialBuy TextMerger

cat, copy /b or type join bytes and nothing else. If the input files do not share one encoding, the result is a file no single encoding can read: UTF-8 text sitting next to GBK text sitting next to UTF-16 text. Encoding conversion is the part that has to happen while the files are put together.
--encoding= and --source-encoding=.
It converts encodings; it does not repair text that was already decoded wrongly before it reached you. If a file is not valid in any encoding, no converter can invent the missing bytes.
Converting one file to another format (not just encoding): DataFileConverter. Opening a very large merged file: BigTextFileViewer. Full reference: merging text files. Related use case: removing duplicate lines while merging.