我正在开发一个python 2.7应用程序,用于将文件上传到2007 Sharepoint。服务器正在OpenSUSE计算机上运行。我现在这样做的方法是使用子进程'Popen来执行curl命令。但是,当文件名具有特殊字符('á','õ','ç',例如)时,python会引发UnicodeEncodeError。
我可以通过强制转换来解决Unicode错误问题 从str到Unicode用于命令字符串,但随后文件以错误的格式名称转到Sharepoint(例如,Manutenção变为Manuten'c~ao)。下图描述了我正在使用的函数的实现:functions used
有没有人知道我该怎么办?
P.S。:我更愿意继续使用curl命令执行请求,但我们对其他解决方案持开放态度
编辑:没试过pycurl,但我会看看它。运行服务器的Linux dist是3.11.10。 执行流程如下:
答案 0 :(得分:0)
好的,伙计们,我发现了问题
由于我在Linux机器上运行代码,因此Popen命令以utf-8编码并以这种方式发送到Sharepoint。但是,似乎Sharepoint 2007使用的编码是latin-1或windows-1252。
我在Windows机器上运行相同的代码并用一堆其他编码对该行进行编码后得出了这个结论。正如预期的那样,只要编码为windows-1252或latin-1(由win cmd识别),上传就会正常。
感谢您的回复。