这是几周内我第二次被困在编码问题上。我已经在这个问题上花了很长时间,如果能得到任何帮助,我将不胜感激。
这就是我想要做的:
1) 从我计算机上的 MySQL 表中选择一些行。
2) 将这些行写入文本文件。
3) 将文本文件传输到我的 Amazon EC2 Ubuntu 实例。
4) 将文本文件的内容写入 MySQL 数据库。
5) 让 Django 从#4 中的数据库中选择一些行。
6) 在网站上展示。
在第 1 步中,我只有一个普通的 SELECT 语句。在第 2 步中,我这样做了:
file = codecs.open('commentsfordjango.txt', encoding = 'utf-8', mode='w')
file.write(fullcomment.decode('utf8') + '\n\n\n\n\n\n')
在第 2 步之后,我在 Windows 中打开了 .txt 文件,我可以看到所有实际的汉字,没有任何错误。
在第 3 步中,我刚刚使用 WinSCP 传输了文件。在第 4 步中,我这样做了:
file = open('/usr/local/src/blog/commentsfordjango.txt', 'r')
cursor.execute("INSERT INTO polls_poll (commenttext, pos, neu, neg) VALUES (%s, 0, 0, 0)", line)
在第 5 步中,我这样做了views.py
:我只是返回了与模型相对应的对象。我的模型有一个unicode函数,但我没有调用它,因为我默认读取它,当你调用你的对象时它已经被调用。
在第 6 步中,我的 HTML 文件在文件顶部有以下行:
<meta charset="utf-8" />
此外,我将我的 Apache 编码默认值更改为 Unicode。我还确保我在第 4 步中的 SQL 数据库是 Unicode 格式的。
然而,在这一切之后,我的网站仍然显示了一堆不可读、奇怪的字符:人在åšï¼Œå¤©åœ¨çœ‹ã€。
任何帮助将不胜感激 - 我已经尝试了很多涉及 .decode() 和 .encode('utf-8') 的变体,并且已经在这个问题上花费了太长时间!