Sometimes you have a mix of old and new projects. New projects encoded in UTF-8 and old in some 8-bit national encoding (e.g. cp1251). Chardet may or may not help here. Specifing a list of valid encodings seems to be a better alternative.
Attached patch adds support for default_encoding settings like
default_encoding = utf-8, cp1251
It also removes code duplication for safe_unicode and safe_str in vcs.lib. I know you have some plans to make a separate configuration vars for vcs. Code duplication may be reintroduced then.