Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unicode Python 2序号在联接时不在范围内_Unicode_Python 2.x - Fatal编程技术网

Unicode Python 2序号在联接时不在范围内

Unicode Python 2序号在联接时不在范围内,unicode,python-2.x,Unicode,Python 2.x,当我这样做的时候 u','.join([u'\u4e8c\u6797',unicode(10)]) 它因UnicodeEncodeError而失败:“ascii”编解码器无法对位置0-1中的字符进行编码:序号不在范围(128)。列表中的所有三项都是unicode类型 为什么它试图用ascii编码?我不想把它转换成ascii字符串。我如何避免它 信息确实不够,因为它可以正常工作: >>> u','.join([u'\u4e8c\u6797', unicode(10)]) u'\u

当我这样做的时候

u','.join([u'\u4e8c\u6797',unicode(10)])

它因UnicodeEncodeError而失败:“ascii”编解码器无法对位置0-1中的字符进行编码:序号不在范围(128)。列表中的所有三项都是unicode类型


为什么它试图用ascii编码?我不想把它转换成ascii字符串。我如何避免它

信息确实不够,因为它可以正常工作:

>>> u','.join([u'\u4e8c\u6797', unicode(10)])
u'\u4e8c\u6797,10'
但我的水晶球说你想用某种方式打印它:

>>> print u','.join([u'\u4e8c\u6797', unicode(10)])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\dev\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-1: character maps to <undefined>
必须告知文件编码,如UTF-8,否则默认为ASCII:

>>> import codecs
>>> with open('out.txt','w') as f:
...   f.write(u','.join([u'\u4e8c\u6797', unicode(10)]).encode('utf8'))
...
>>>  # SUCCESS!

对我有用。深入挖掘。哦,是的,我正试图打印它,或者写入文件。你的水晶球是正确的。事实上,我第一次遇到这个错误是在写入文件时。然后我试着把它打印出来看看有什么效果。我用编解码器模块打开文件(outputFileName,'w','utf-8')。而[u'\u4e8c\u6797',unicode(10)]是我所做工作的简化示例,而不是最初的问题。我只是注意到,这一个通过时,写入文件。让我再检查一下原来的箱子。
>>> import codecs
>>> with open('out.txt','w') as f:
...   f.write(u','.join([u'\u4e8c\u6797', unicode(10)]).encode('utf8'))
...
>>>  # SUCCESS!