unicode-friendliness for user names with accents/special chars
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 6 Sep 2011 12:52:38 +0000 (14:52 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 6 Sep 2011 12:52:38 +0000 (14:52 +0200)
sfa/client/sfi.py
sfa/util/rspec.py

index 2e19901..9cf7d0b 100755 (executable)
@@ -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
 
index 572d660..b888a7d 100644 (file)
@@ -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)