擅长:python、mysql、java
<p><strong>第一个问题:</strong></p>
<pre><code>xmlfile = open(u"D:\\Users\\Эрик\\Downloads\\temp.xml", "r")
### The above line should be OK, provided that you have the correct coding line
### For example # coding: cp1251
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
xmlfile = open(str(u"D:\\Users\\Эрик\\Downloads\\temp.xml"), "r")
### HOWEVER the above traceback line shows you actually using str()
### which is DIRECTLY causing the error because it is attempting
### to decode your filename using the default ASCII codec DON'T DO THAT.
### Please copy/paste; don't type from memory.
UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-12: ordinal not in range(128)
</code></pre>
<p><strong>第二个问题:</strong></p>
<p><code>os.sys.getfilesystemencoding()</code>产生{<cd2>}</p>
^{pr2}$
<p><strong>有关在Windows中硬编码文件名的一般建议</strong>,按优先顺序降序排列:</p>
<p>(1)不要<br/>
(2) 使用<code>/</code>例如<code>"c:/temp.xml"</code><br/>
(3) 使用带反斜杠的原始字符串<code>r"c:\temp.xml"</code><br/>
(4) 使用双反斜杠<code>"c:\\temp.xml"</code></p>