[anaconda][master] Make sure we always use "utf-8" as the default encoding (#1169019)

Brian C. Lane bcl at redhat.com
Wed Feb 18 23:10:31 UTC 2015


On Wed, Feb 18, 2015 at 06:09:04PM +0100, Vratislav Podzimek wrote:
> Our sitecustomize.py script doesn't work with live installations causing
> various wierd issues with unicode objects and plain strings (in Python 2). This
> way we can make sure we always use "utf-8" as the default encoding.
> 
> Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
> ---
>  anaconda                    |  7 +++++++
>  pyanaconda/sitecustomize.py | 23 -----------------------
>  2 files changed, 7 insertions(+), 23 deletions(-)
>  delete mode 100644 pyanaconda/sitecustomize.py
> 
> diff --git a/anaconda b/anaconda
> index 88091ab..623aef5 100755
> --- a/anaconda
> +++ b/anaconda
> @@ -755,6 +755,13 @@ def cleanPStore():
>      dir_tree_map("/sys/fs/pstore", os.unlink, files=True, dirs=False)
>  
>  if __name__ == "__main__":
> +    # Force the "utf-8" encoding as the default (no idea why python doesn't have
> +    # it as a default in 2015). The setdefaultencoding() function is removed
> +    # from the sys module's namespace after site scripts are run so we need to
> +    # reload the sys module.
> +    reload(sys)
> +    sys.setdefaultencoding('utf-8')

I'm not sure about this. I find various references saying not to do
this, that it may break other things. I also came across this:

https://fedoraproject.org/wiki/Features/PythonEncodingUsesSystemLocale

But it doesn't look like the change was ever made since this happens on
f21:

python -c 'print u"\u03b1\u03b2\u03b3"' > foo.txt
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

My impression has always been that reload is for interactive use, and
even then generally doesn't work like you expect it to.

-- 
Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)


More information about the anaconda-patches mailing list