<!--- 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

```

''' repeat code for value entry assignment '''
        value = None
        origin = None
        for entry in entry_list:
            name = entry.get('name')
            try:
                temp_value = container.get(name, None)
            except UnicodeEncodeError:
                self.WARNINGS.add(u'value for config entry {0} contains invalid characters, ignoring...'.format(to_text(name)))
                continue
            if temp_value is not None:  
                
                if isinstance(temp_value, AnsibleVaultEncryptedUnicode):
                    temp_value = to_text(temp_value, errors='surrogate_or_strict')
                value = temp_value
                origin = name
                
                if 'deprecated' in entry:
                    self.DEPRECATED.append((entry['name'], entry['deprecated']))
        return value, origin
    def get_config_value(self, config, cfile=None, plugin_type=None, plugin_name=None, keys=None, variables=None, direct=None):