From 53eb46d6526a71b85597ddaacf5954033fa3ac59 Mon Sep 17 00:00:00 2001 From: Daniel STAN <daniel.stan@crans.org> Date: Wed, 12 Mar 2014 20:55:34 +0100 Subject: [PATCH] =?UTF-8?q?fname=20doit=20=C3=AAtre=20un=20unicode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On ne gère la conversion vers du binaire (utf-8) qu'au dernier moment. --- client.py | 1 + server.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/client.py b/client.py index eb79567..3b18d95 100755 --- a/client.py +++ b/client.py @@ -961,6 +961,7 @@ if __name__ == "__main__": liste """) parser.add_argument('fname', nargs='?', default=None, + type=lambda x: x.decode('utf-8'), help="Nom du fichier à afficher") # On parse les options fournies en commandline diff --git a/server.py b/server.py index 66723b1..8e075f5 100755 --- a/server.py +++ b/server.py @@ -41,6 +41,8 @@ def validate(roles, mode='r'): def getpath(filename, backup=False): """Récupère le chemin du fichier ``filename``""" + assert(isinstance(filename, unicode)) + filename = filename.encode('utf-8') return os.path.join(serverconfig.STORE, '%s.%s' % (filename, 'bak' if backup else 'json')) def writefile(filename, contents): @@ -140,7 +142,8 @@ def listfiles(): files = {} for filename in filenames: file_dict = json.loads(open(filename).read()) - files[filename[:-5]] = file_dict["roles"] + fname = filename[:-5].decode('utf-8') + files[fname] = file_dict["roles"] return files @server_command('getfile') -- GitLab