Python win32wnet.WNetAddConnection2()无法挂载包含非ascii字符的网络路径

时间:2017-10-09 07:32:00

标签: python unicode

我遇到了包含非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

1 个答案:

答案 0 :(得分:-1)

尝试以这种方式设置默认编码:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
相关问题