我遇到了包含非ascii的网络路径问题 尝试映射它们时的字符。
更准确地说,该位置包含unicode字符。 location ='\\ 192.10.12.122 \युनिक'
WNetAddConnection2函数需要字符串类型作为remoteName参数。
一个简单的电话肯定会失败:
win32wnet.WNetAddConnection2(
win32netcon.RESOURCETYPE_DISK,
None, location, None,
None, None)
Traceback (most recent call last):
File "D:\eclipseworkspaces\training\pytraining\win32networkstuff\unc.py",
line 66, in ?
None, None)
UnicodeEncodeError: 'ascii' codec can't encode characters in position
30-44: ordinal not in range(128)
我无法找出UNICODE字符串的正确编码。我试过了两个 'utf8'和'mbcs'编码,类似于:
win32wnet.WNetAddConnection2(
win32netcon.RESOURCETYPE_DISK,
None, location.encode('utf8'), None,
None, None)
Traceback (most recent call last):
File "D:\eclipseworkspaces\training\pytraining\win32networkstuff\unc.py",
line 66, in ?
None, None)
pywintypes.error: (53, 'WNetAddConnection2', 'The network path was not found.')
处理此案件的正确方法是什么? 非常感谢您的帮助。
我正在运行Python 2.6
答案 0 :(得分:-1)
尝试以这种方式设置默认编码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')