我试图用PyQt4创建一个csv格式的文本文件QTableWidget.我想用UTF-8编码来编写文本,因为它包含特殊字符.我使用以下代码:
import codecs
...
myfile = codecs.open(filename, 'w','utf-8')
...
f = result.table.item(i,c).text()
myfile.write(f+";")
Run Code Online (Sandbox Code Playgroud)
它一直有效,直到单元格包含特殊字符.我也尝试过
myfile = open(filename, 'w')
...
f = unicode(result.table.item(i,c).text(), "utf-8")
Run Code Online (Sandbox Code Playgroud)
但是当出现特殊字符时它也会停止.我不知道我做错了什么.
我有一个用VIM创建的PHP文件,但我不确定它的编码是什么.
当我使用终端并使用命令检查编码file -bi foo(我的操作系统是Ubuntu 11.04)时,它给出了下一个结果:
text/html; charset=us-ascii
但是,当我用gedit打开文件时,它说它的编码是UTF-8.
哪一个是正确的?我希望文件以UTF-8编码.
我的猜测是文件中没有BOM并且命令file -bi读取文件并且没有找到任何UTF-8字符,所以它假设它是ascii,但实际上它是用UTF-8编码的.
string = "Deepika Padukone, Esha Gupta or Yami Gautam - Who's looks hotter and sexier? Vote! - It's ... Deepika Padukone, Esha Gupta or Yami Gautam…. Deepika Padukone, Esha Gupta or Yami Gautam ... Tag: Deepika Padukone, Esha Gupta, Kalki Koechlin, Rang De Basanti, Soha Ali Khan, Yami ... Amitabh Bachchan and Deepika Padukone to be seen in Shoojit Sircar's Piku ..."
fp = open("test.txt", "w+");
fp.write("%s" %string);
Run Code Online (Sandbox Code Playgroud)
运行上面的代码后,我得到以下错误.
File "encode_error.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file encode_error.py …Run Code Online (Sandbox Code Playgroud)