更新39协议
更新webserivce功能
完善nettrans
diff --git a/supwisdom/protocol/nettrans.py b/supwisdom/protocol/nettrans.py
index 0d1df81..4973c8c 100644
--- a/supwisdom/protocol/nettrans.py
+++ b/supwisdom/protocol/nettrans.py
@@ -5,14 +5,10 @@
 import traceback

 import simplejson as json

 

-

-def _unicode_str(value):

-    if isinstance(value, str):

-        return value.decode('utf-8')

-    elif isinstance(value, unicode):

-        return value

-    else:

-        return unicode(value)

+"""

+后台服务的字符编码

+"""

+SERVICE_ENCODING = 'utf-8'

 

 

 class message_writer:

@@ -21,6 +17,14 @@
     def __init__(self):

         self.clear()

 

+    def _unicode_str(value):

+        if isinstance(value, str):

+            return value.decode('utf-8')

+        elif isinstance(value, unicode):

+            return value

+        else:

+            return unicode(value)

+

     def clear(self):

         self._attr = {}

         self._row_data = []

@@ -31,13 +35,13 @@
     def attr(self, name, value):

         if name in self._attr:

             raise ValueError('Attribute [%s] already exists' % name)

-        self._attr[name] = _unicode_str(value)

+        self._attr[name] = self._unicode_str(value)

         return self

 

     def row(self, name, value):

         if not (name in self._col_names):

             self._col_names.append(name)

-        self._row[name] = _unicode_str(value)

+        self._row[name] = self._unicode_str(value)

 

     def add_row(self):

         if not self._row:

@@ -77,7 +81,7 @@
         """

         if not self._frozen:

             self._normalize()

-        seri = json.dumps(self._attr, ensure_ascii=False, encoding='utf-8')

+        seri = json.dumps(self._attr, ensure_ascii=False, encoding=SERVICE_ENCODING)

         return seri

 

     def root(self):

@@ -92,6 +96,14 @@
     def __init__(self):

         self.clear()

 

+    def _unicode_str(value):

+        if isinstance(value, str):

+            return value.decode(SERVICE_ENCODING)

+        elif isinstance(value, unicode):

+            return value

+        else:

+            return unicode(value)

+

     def clear(self):

         """ 清空数据

         """

@@ -107,7 +119,7 @@
         """

         self.clear()

         try:

-            message = _unicode_str(message)

+            message = self._unicode_str(message)

             obj = json.loads(message)

             #obj = json.loads(msg.replace('\\',"\\\\"))

         except Exception, ex: