diff --git a/tcutils/vcprojred.py b/tcutils/vcprojred.py
index 7304160..71f0509 100644
--- a/tcutils/vcprojred.py
+++ b/tcutils/vcprojred.py
@@ -18,7 +18,15 @@
         
     def run(self,argv):
         self._parse_opt(argv)
-        self._run_dir(self.options.solutiondir)
+        if isinstance(self.options.solutiondir,str):
+            soludir = self.options.solutiondir.decode('gbk')
+        else:
+            soludir = self.options.solutiondir
+
+        if isinstance(self.options.outputdir,str):
+            self.options.outputdir = self.options.outputdir.decode('gbk')
+
+        self._run_dir(soludir)
     
     def error(self,msg,exitcode = 1):
         print "Error: %s" % msg
@@ -76,12 +84,14 @@
             f.close()
     
     def _deal_proj(self,projfile):
+        if isinstance(projfile,str):
+            projfile = projfile.decode('gbk')
         file_name = os.path.basename(projfile)
         exts = os.path.splitext(file_name)
         if exts[-1] not in ['.vcproj']:
             return None
         # parse project 
-        print u"处理工程 [%s]" %  projfile
+        print u"处理工程 [%s]" %  unicode(projfile)
 
         prjdom = xml_encoding = None
         try:
