From e48439d89cb69735da13d41c2614639bc85d6225 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Wed, 10 Feb 2016 18:29:19 +0100 Subject: [PATCH] [FIX] website: encode lang (come from database) into utf-8 before join MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Join can fail if url contains non-ascii char Fix urls like: /page/波 /page/русский /page/%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9 --- addons/website/models/website.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 59c050bc225..48ddcc92a7d 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -53,13 +53,13 @@ def url_for(path_or_uri, lang=None): if ps[1] in langs: # Replace the language only if we explicitly provide a language to url_for if force_lang: - ps[1] = lang + ps[1] = lang.encode('utf-8') # Remove the default language unless it's explicitly provided elif ps[1] == request.website.default_lang_code: ps.pop(1) # Insert the context language or the provided language elif lang != request.website.default_lang_code or force_lang: - ps.insert(1, lang) + ps.insert(1, lang.encode('utf-8')) location = '/'.join(ps) return location.decode('utf-8')