diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index 56e8c2aa862..39697a8e725 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el @@ -169,7 +169,12 @@ limiting, and LENGTH is interpreted as the number of bytes to limit the string to. The result will be a unibyte string that is shorter than LENGTH, but will not contain \"partial\" characters (or glyphs), even if CODING-SYSTEM encodes characters -with several bytes per character. +with several bytes per character. If the coding system specifies +things like byte order marks (aka \"BOM\") or language tags, they +will normally be part of the calculation. This is the case, for +instance, with `utf-16'. If this isn't desired, use a coding +system that doesn't specify a BOM, like `utf-16le' or +`utf-16be'. When shortening strings for display purposes, `truncate-string-to-width' is almost always a better alternative