0

警告:我必须为这个项目使用 python 2.7.5。

我的问题如下:我正在尝试将以 IDN 形式(例如 müller.de)表示的变音符号域转换为 ACE 字符串(例如 xn--mller-kva.de)。encodings.idna阅读我发现应该在 python 2.3 中引入的官方 python 文档。但是,我似乎并没有encodings.idna通过尽dir(encodings)我所能找到的是:

['CodecRegistryError',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__file__',
 '__name__',
 '__package__',
 '__path__',
 '_aliases',
 '_cache',
 '_import_tail',
 '_norm_encoding_map',
 '_unknown',
 'aliases',
 'ascii',
 'codecs',
 'hex_codec',
 'normalize_encoding',
 'search_function',
 'utf_8']

我在这里错了什么?

提前致谢!

4

1 回答 1

1

只需使用unicode_object.encode('idna')

>>> import encodings
>>> encodings.idna
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'idna'
>>> u'müller.de'.encode('idna')
'xn--mller-kva.de'
>>> encodings.idna
<module 'encodings.idna' from '/usr/lib/python2.7/encodings/idna.pyc'>

它似乎在使用或明确导入之前不会导入。

>>> import encodings
>>> encodings.idna
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'idna'
>>> import encodings.idna
>>> encodings.idna
<module 'encodings.idna' from '/usr/lib/python2.7/encodings/idna.pyc'>
于 2013-11-15T09:37:43.717 回答