diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..e206d70
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..7038ae8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.3 virtualenv at ~/Dev/py27-dev64" project-jdk-type="Python SDK" />
+</project>
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..6e94566
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/v2convert.iml" filepath="$PROJECT_DIR$/.idea/v2convert.iml" />
+    </modules>
+  </component>
+</project>
+
diff --git a/.idea/other.xml b/.idea/other.xml
new file mode 100644
index 0000000..9d2e7e9
--- /dev/null
+++ b/.idea/other.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PyDocumentationSettings">
+    <option name="myDocStringFormat" value="Plain" />
+  </component>
+</project>
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100644
index 0000000..922003b
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+<component name="DependencyValidationManager">
+  <state>
+    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+  </state>
+</component>
\ No newline at end of file
diff --git a/.idea/testrunner.xml b/.idea/testrunner.xml
new file mode 100644
index 0000000..0d97b74
--- /dev/null
+++ b/.idea/testrunner.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="TestRunnerService">
+    <option name="projectConfiguration" value="Unittests" />
+    <option name="PROJECT_TEST_RUNNER" value="Unittests" />
+  </component>
+</project>
+
diff --git a/.idea/v2convert.iml b/.idea/v2convert.iml
new file mode 100644
index 0000000..1ba372b
--- /dev/null
+++ b/.idea/v2convert.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="jdk" jdkName="Python 2.7.3 virtualenv at ~/Dev/py27-dev64" jdkType="Python SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..c80f219
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
+
diff --git a/convert-example.json b/convert-example.json
index 2053606..def9d61 100755
--- a/convert-example.json
+++ b/convert-example.json
@@ -38,7 +38,7 @@
                         OPENDATE, CLOSEDATE, CARDVERNO, LASTSAVED",
         "remark": "导入卡表前更新 begin_time 不能为空",
         "pre_exec" : ["update ykt_cur.t_pif_card set begin_time='20061001' where card_id=43430"],
-        "dst_pre_exec": ["update t_card where cardid=10"],
+        "pre_dst_exec": ["update t_card where cardid=10"],
         "post_exec": ["update t_card set cardphytype=20"]
     }
 ]
diff --git a/v2convert.py b/v2convert.py
index d23a210..218a5fa 100755
--- a/v2convert.py
+++ b/v2convert.py
@@ -12,7 +12,7 @@
 import re
 
 
-VERSION = "1.4"
+VERSION = "1.5"
 SYSENCODING = locale.getdefaultlocale()[1]
 
 if not SYSENCODING:
@@ -111,7 +111,7 @@
             self._dst_db = self._connect_db(self._dst_type, **param)
             print u"连接目标库成功"
         except Exception, ex:
-            print u"连接数据失败, {0}".format(ex)
+            print u"连接数据失败, {0}".format(str(ex).decode('utf-8'))
             return
 
         self._convert()
@@ -202,19 +202,21 @@
                 elif isinstance(data, float):
                     v.append('%f' % data)
                 elif isinstance(data, str) or isinstance(data, unicode):
-                    v.append("'{0}'".format(data))
+                    v.append("'{0}'".format(data.replace("'", "''")))
                 elif data is None:
                     v.append('NULL')
                 else:
                     v.append(data)
             values = ",".join(v)
-            insert_sql = 'insert into {0} ({1}) values({2})'.format(rule['name'],
-                     rule['dest_column'], values)
+            values = values.decode('utf-8')
+            insert_sql = u'insert into {0} ({1}) values({2})'.format(rule['name'],
+                         rule['dest_column'], values)
             # print insert_sql
             count += 1
             if not self._dst_db.exec_sql(insert_sql):
                 print u"导入第{0}条记录错误".format(count)
                 self._dst_db.rollback()
+                print u"SQL<{0}>".format(insert_sql)
                 return False
 
             if count % self._commit_count == 0:
