The manpage says that nl_langinfo returns an empty string when there is
an invalid setting.
There is validity in saying that 'LANG=utf-8' is an invalid setting, the
LANG variable is supposed to a locale name, which would be a language
setting (possibly combined with a codeset definition). "utf-8" is not a
language.
I wouldn't mind falling back to utf-8 as the default codeset when
nl_langinfo returns an empty string because utf-8 is the default
character set on OSX, and furthermore defaulting to some value is way
better than crashing.
I do wonder how the user ended up with LANG=utf-8 in the first place.