From: Thierry Parmentelat Date: Tue, 6 Sep 2011 12:52:38 +0000 (+0200) Subject: unicode-friendliness for user names with accents/special chars X-Git-Tag: sfa-1.0-36~24 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d9595e3c83fc48fc3587419800773e2ccb59cbe1;p=sfa.git unicode-friendliness for user names with accents/special chars --- diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index 2e19901b..9cf7d0b4 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -11,10 +11,12 @@ import socket import random import datetime import zlib +import codecs from lxml import etree from StringIO import StringIO from types import StringTypes, ListType from optparse import OptionParser + from sfa.util.sfalogging import sfi_logger from sfa.trust.certificate import Keypair, Certificate from sfa.trust.gid import GID @@ -108,13 +110,17 @@ def save_record_to_file(filename, record): else: record = SfaRecord(dict=record) str = record.save_to_string() - file(filename, "w").write(str) + f=codecs.open(filename, encoding='utf-8',mode="w") + f.write(str) + f.close() return # load methods def load_record_from_file(filename): - str = file(filename, "r").read() + f=codecs.open(filename, encoding="utf-8", mode="r") + str = f.read() + f.close() record = SfaRecord(string=str) return record diff --git a/sfa/util/rspec.py b/sfa/util/rspec.py index 572d6600..b888a7d7 100644 --- a/sfa/util/rspec.py +++ b/sfa/util/rspec.py @@ -252,7 +252,7 @@ class RSpec: element = minidom.Element(tagname) for key in rd.keys(): if isinstance(rd[key], StringTypes) or isinstance(rd[key], int): - element.setAttribute(key, str(rd[key])) + element.setAttribute(key, unicode(rd[key])) elif isinstance(rd[key], dict): child = elementNode(key, rd[key]) element.appendChild(child)