From d9595e3c83fc48fc3587419800773e2ccb59cbe1 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Tue, 6 Sep 2011 14:52:38 +0200 Subject: [PATCH] unicode-friendliness for user names with accents/special chars --- sfa/client/sfi.py | 10 ++++++++-- sfa/util/rspec.py | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) 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) -- 2.43.0