0

我正在做一个项目,该项目旨在从某些网站获取一些数据,然后存储到数据库中。但这些网站包含不同的字符集,例如 utf-8、gbk。获取的数据是 unicode,所以我想知道何时转换为字符串是正确的方法。我现在立即转换为字符串,但似乎 python 建议尽可能长时间地保留 unicode,我不知道为什么?因为我们总是不知道 unicode 对象的字符集。

4

2 回答 2

1

unicodes 没有字符集;它们是纯文本。仅在仅接受字节的介质中存储或传输时才转换为字节串。

于 2013-07-08T01:35:17.930 回答
1

在您的应用程序中处理文本的建议是:

  1. 从某个地方获取输入字节(字符串编码)
  2. 将它们解码到您的应用程序中Unicode并在其中使用Unicode
  3. 每当您想输出文本时,对其进行编码。

如果您正在获取网页,我已经看到BeautifulSoup其他库可以为您转换 Unicode 中的传入字节。因此,在您的应用程序中,您可以使用 Unicode 处理它们。

如果你想将它存储在数据库中,可能是数据库被编码utf-8,如果没有,了解它的编码是什么,当你准备好将信息写入数据库时​​,首先对其进行编码。

text = text.encode('utf-8') # or the encode used by your DB
db.persist(text) # pseudocode here ;)

这样你就可以在你的应用程序前面设置一个unicode 保护层,用于输入和输出。

希望这可以帮助!

于 2013-07-08T01:49:54.927 回答