python unicode 问题求答案

python unicode 问题求答案

在python中,我从一个excel文件中读入数据,excel的字体选择为宋体,读进来的东西编码全部是unicode,打印出来是str1 = “u'Google_AdSense\u9ed1\u540d\u5355'”
但我从另一个文本文件中读,读出来是ascii,我用str2 = unicode(str)进行编码转换,转换后打出来是“Google_AdSense黑名单”,type是unicode,打印repr(str2)得到的是u'Google_AdSense\u9ed1\u540d\u5355'

但str1 和 str2 不相等,hash值不同

我想问的是,这个两个的区别在那里?str1的type也是unicode,我打印都是直接用print,为什么打印出来的又不一样,str2和str1的区别在那里?
谢谢!
你没有说第一个是怎么打印的。因为第二个你说使用了repr,而repr就是显示内部格式。你试一下别的变量就知道了。而print a 与print repr(a)本来就是不同的。
str2我是打印了两次,第一次是直接print,得到的是“Google_AdSense黑名单”,第二次打印repr,得到的与str1一样的东西,但str1 和 str2 不相等,hash值不同
从你的例子上看两者还是有差异,一个是字符串中还有引号,而后一个没有。后一个应该是对的。不知道你在从excel中取出来后做了哪些处理。