Box-drawing characters can apparently break bat's output, and they might not get displayed correctly. Additionally, it can be side-effecty and leave the terminal emulator / shell into a rather unreadable state, as seen in the screenshot.

Attached a text file for reproducability. It is a snippet from one of the output files of running taurus, a load testing tool.
This was highly amusing to bump into 馃槃 but sadly perhaps more of a bug than a feature to keep around.
Context:
I am able to reproduce both issues (MacOS Mojave 10.14.3).
|Terminal.app|iTerm2|
|:-:|:-:|
|
|
|
Issues occur both with and without paging.
Issues do not occur when --decorations=never (implies --wrap=never).
Issues do not occur when --wrap=never.
Opening up the file in nvim shows a bunch of escape sequences:
^[(0 -- setspecg0 (Special Characters)
^[(B -- setusg0 (US Characters)
@Walther:
From my experimentation and analysis, the issue is that taurus is using the VT100 character set escape sequence for box-drawing rather than using Unicode box-drawing characters. The use of VT100 and ANSI escape sequences in character-level wrapping isn't really supported, and basically amounts to a naive passthrough for ANSI SGR codes (which doesn't cover VT100 box drawing).
@sharkdp:
Would it be worth it to add a special preprocessor for box drawing characters?
It shouldn't be too complicated to match and handle ^[(0 and ^[(B to replace the "box-drawing" characters with their Unicode equivalents.
Edit: It turned out to be my fault, but this still might not be a bad idea, since character set changing sequences might be able to affect the decoration bar.
Yep - i'm making a naive assumption/guess that cat explicitly makes sure the character changes are reset after EOF, making sure that even a "broken" input won't be side-effecty to the terminal - or something similar to that effect. Something to that effect would be nice to have in bat too :)
@Walther:
cat wouldn't be doing that. It turns out that I made some relatively-safe but incorrect assumptions when implementing escape passthrough for character wrapping. I improved it to more reliably detect any SGR escape sequences (and any that use the CSI prefix). Everything else should be passed through properly now, including VT100 character set changes.
Your issue should be fixed in #561.
Thank you for both the quick fix and the great explanations! 鉂わ笍
@Walther Thank you for reporting this!
@eth-p Thank you for the analysis and the PR!