<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
As of Ansible 2.9, the Ansible CLI commands crashe when the ansible project directory contains some non-ASCII characters. In my case it contains a `é`, a quite common character in french.

I get this error:

> ERROR! Unexpected Exception, this is probably a bug: 'ascii' codec can't decode byte 0xc3 in position 31: ordinal not in range(128)
> to see the full traceback, use -vvv

With `---v`, I get that:

> ERROR! Unexpected Exception, this is probably a bug: 'ascii' codec can't decode byte 0xc3 in position 31: ordinal not in range(128)
> the full traceback was:
> 
> Traceback (most recent call last):
>   File "/usr/bin/ansible-playbook", line 123, in <module>
>     exit_code = cli.run()
>   File "/usr/lib/python2.7/dist-packages/ansible/cli/playbook.py", line 69, in run
>     super(PlaybookCLI, self).run()
>   File "/usr/lib/python2.7/dist-packages/ansible/cli/__init__.py", line 82, in run
>     display.vv(to_text(opt_help.version(self.parser.prog)))
>   File "/usr/lib/python2.7/dist-packages/ansible/cli/arguments/option_helpers.py", line 174, in version
>     result += "\n  config file = %s" % C.CONFIG_FILE
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 31: ordinal not in range(128)

If I remove this character from the directory path, it gets working.

Note that this also happens for other Ansible commands, such as `ansible --version`. It sounds like it happens as soon as the project configuration is read.

<!--- Explain the problem briefly below -->

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->

Ansible.

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```
ansible 2.9.3
  config file = /tmp/project/ansible.cfg
  configured module search path = [u'/home/username/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.17 (default, Nov  7 2019, 10:07:09) [GCC 7.4.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
ANSIBLE_PIPELINING(/tmp/project/ansible.cfg) = True
DEFAULT_HOST_LIST(/tmp/project/ansible.cfg) = [u'/tmp/project/hosts']
DEFAULT_REMOTE_USER(/tmp/project/ansible.cfg) = username
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Ubuntu 18.04. Ansible installed from the [Ansible PPA](https://launchpad.net/~ansible).

##### STEPS TO REPRODUCE
Create any ansible project in a directory containing a non-ASCII character.

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
Ansible should work and used to work until Ansible 2.9.
<!--- Describe what you expected to happen when running the steps above -->


##### ACTUAL RESULTS
Get the error reported above.
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below

```

from yaml import load as yaml_load
try:
    
    from yaml import CSafeLoader as SafeLoader
except ImportError:
    from yaml import SafeLoader
from ansible.config.data import ConfigData
from ansible.errors import AnsibleOptionsError, AnsibleError
from ansible.module_utils._text import to_text, to_bytes, to_native
from ansible.module_utils.common._collections_compat import Sequence
from ansible.module_utils.six import PY3, string_types
from ansible.module_utils.six.moves import configparser
from ansible.module_utils.parsing.convert_bool import boolean
from ansible.parsing.quoting import unquote
from ansible.parsing.yaml.objects import AnsibleVaultEncryptedUnicode
from ansible.utils import py3compat
from ansible.utils.path import cleanup_tmp_file, makedirs_safe, unfrackpath
Plugin = namedtuple('Plugin', 'name type')
Setting = namedtuple('Setting', 'name value origin type')
INTERNAL_DEFS = {'lookup': ('_terms',)}
def _get_entry(plugin_type, plugin_name, config):
    ''' construct entry for requested config '''
    entry = ''
    if plugin_type:
        entry += 'plugin_type: %s ' % plugin_type
        if plugin_name:
            entry += 'plugin: %s ' % plugin_name
    entry += 'setting: %s ' % config
    return entry
def ensure_type(value, value_type, origin=None):