[vlc-commits] Use utf-8 encoding for all strings passed through the libvlc API
Olivier Aubert
git at videolan.org
Wed Sep 30 15:52:59 CEST 2015
vlc/python | branch: master | Olivier Aubert <contact at olivieraubert.net> | Wed Sep 30 15:51:41 2015 +0200| [3f9a8636ce1b3488b85c797dd2cbc1d1bbb008e1] | committer: Olivier Aubert
Use utf-8 encoding for all strings passed through the libvlc API
The libvlc API explicitly uses utf-8 for all strings. Using
sys.getfilesystemencoding() on the python side will not produce the
appropriate encoding especially on windows.
Reported by Tomas Groth <tomasgroth at yahoo.dk>
> http://git.videolan.org/gitweb.cgi/vlc/python.git/?a=commit;h=3f9a8636ce1b3488b85c797dd2cbc1d1bbb008e1
---
header.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/header.py b/header.py
index f608046..50c4b9e 100755
--- a/header.py
+++ b/header.py
@@ -50,6 +50,11 @@ from inspect import getargspec
build_date = '' # build time stamp and __version__, see generate.py
+# The libvlc doc states that filenames are expected to be in UTF8, do
+# not rely on sys.getfilesystemencoding() which will be confused,
+# esp. on windows.
+DEFAULT_ENCODING = 'utf-8'
+
if sys.version_info[0] > 2:
str = str
unicode = str
@@ -60,7 +65,7 @@ if sys.version_info[0] > 2:
"""Translate string or bytes to bytes.
"""
if isinstance(s, str):
- return bytes(s, sys.getfilesystemencoding())
+ return bytes(s, DEFAULT_ENCODING)
else:
return s
@@ -68,7 +73,7 @@ if sys.version_info[0] > 2:
"""Translate bytes to string.
"""
if isinstance(b, bytes):
- return b.decode(sys.getfilesystemencoding())
+ return b.decode(DEFAULT_ENCODING)
else:
return b
else:
@@ -81,7 +86,7 @@ else:
"""Translate string or bytes to bytes.
"""
if isinstance(s, unicode):
- return s.encode(sys.getfilesystemencoding())
+ return s.encode(DEFAULT_ENCODING)
else:
return s
@@ -89,7 +94,7 @@ else:
"""Translate bytes to unicode string.
"""
if isinstance(b, str):
- return unicode(b, sys.getfilesystemencoding())
+ return unicode(b, DEFAULT_ENCODING)
else:
return b
More information about the vlc-commits
mailing list