参数包含 & 时编码错误
Encoding error when argument contains &
我正在通过网络表单提交文件名,让 cherrypy 接收此文件名并打开它进行处理。我遇到的问题是当文件包含“&”时出现以下错误。
从文件名
中删除“&”时我没有遇到任何问题
文件名:
invoicing - SP30075306 Heidelberg Dust & Dropper.xlsm
Python代码:
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'))
错误打印输出:
invoicing - SP30075306 Heidelberg Dust
[Errno 2] No such file or directory:
u'C:/Users/rihanio/Dropbox/Projects/Python_code/work/gateway/Temp_Project_Files/temp_invoicing\invoicing
- SP30075306 Heidelberg Dust '
我已经通过在发送到 python 之前在网络表单端对文件名进行编码来解决这个问题。
encodeURIComponent(file.name)
$.ajax({url: '/cost_breakdown?sp=&wo=&pm=' +cookie_read +'&contract=' +contract +'&file=' +encodeURIComponent(file.name),
我正在通过网络表单提交文件名,让 cherrypy 接收此文件名并打开它进行处理。我遇到的问题是当文件包含“&”时出现以下错误。 从文件名
中删除“&”时我没有遇到任何问题文件名:
invoicing - SP30075306 Heidelberg Dust & Dropper.xlsm
Python代码:
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'))
错误打印输出:
invoicing - SP30075306 Heidelberg Dust
[Errno 2] No such file or directory: u'C:/Users/rihanio/Dropbox/Projects/Python_code/work/gateway/Temp_Project_Files/temp_invoicing\invoicing - SP30075306 Heidelberg Dust '
我已经通过在发送到 python 之前在网络表单端对文件名进行编码来解决这个问题。
encodeURIComponent(file.name)
$.ajax({url: '/cost_breakdown?sp=&wo=&pm=' +cookie_read +'&contract=' +contract +'&file=' +encodeURIComponent(file.name),