Python 参数包含&;时出现编码错误;
我通过网络表单提交了一个文件名,并让cherrypy接收这个文件名并打开它进行处理。我在这里遇到的问题是,当文件包含“&”时,我会出现以下错误。 从文件名中删除“&”时没有问题 文件名: 发票-SP30075306海德堡灰尘和滴管.xlsm Python代码:Python 参数包含&;时出现编码错误;,python,encoding,cherrypy,Python,Encoding,Cherrypy,我通过网络表单提交了一个文件名,并让cherrypy接收这个文件名并打开它进行处理。我在这里遇到的问题是,当文件包含“&”时,我会出现以下错误。 从文件名中删除“&”时没有问题 文件名: 发票-SP30075306海德堡灰尘和滴管.xlsm Python代码: reload(sys) sys.setdefaultencoding('utf8') @cherrypy.expose def cost_breakdown(self, **mate): print mate['file']
reload(sys)
sys.setdefaultencoding('utf8')
@cherrypy.expose
def cost_breakdown(self, **mate):
print mate['file'].encode('UTF8')
offer_path = os.path.join('C:/Users/rihanio/Dropbox/Projects/Python_code/work/gateway/Temp_Project_Files/temp_invoicing', mate['file'].encode('UTF8'))
打印输出错误:
reload(sys)
sys.setdefaultencoding('utf8')
@cherrypy.expose
def cost_breakdown(self, **mate):
print mate['file'].encode('UTF8')
offer_path = os.path.join('C:/Users/rihanio/Dropbox/Projects/Python_code/work/gateway/Temp_Project_Files/temp_invoicing', mate['file'].encode('UTF8'))
发票-SP30075306海德堡灰尘
[Errno 2]没有这样的文件或目录:
u'C:/Users/rihanio/Dropbox/Projects/Python\u code/work/gateway/Temp\u Project\u Files/Temp\u invoicing\invoicing
-SP30075306海德堡灰尘'
我通过在发送到python之前在webform端对文件名进行编码来解决这个问题 encodeURIComponent(file.name)
&
字符作为URL中的字段分隔符具有特殊意义,应编码为%26
代码格式有点不正确。任何编码建议实际上,您应该编码所有get参数。我建议您使用来封装这个。