【问题标题】:Can I get SQLite to string instead of unicode for TEXT in Python?我可以在 Python 中将 SQLite 转换为字符串而不是 TEXT 的 unicode 吗?
【发布时间】:2010-09-08 09:31:16
【问题描述】:

AFAIK SQLite 在 Python 中返回 TEXT 的 unicode 对象。是否可以让 SQLite 改为返回字符串对象?

【问题讨论】:

    标签: python string sqlite unicode


    【解决方案1】:

    在进一步检查 Python SQLite API 时,我发现了这一点:

    http://docs.python.org/library/sqlite3.html#sqlite3.Connection.text_factory

    结案。

    【讨论】:

      【解决方案2】:

      TEXT 用于存储文本。如果要存储字节,请使用 BLOB

      【讨论】:

      • 是的,但为什么必须使用 unicode?我使用的很多 python 库都不喜欢 unicode。而且我讨厌进行str 转换,因为它看起来很难看,有时我无法确定我要转换的数据类型。
      • 文本是 Unicode。 Unicode 是文本。不想要 Unicode?不要使用文字。
      • @c00kiemonster,因为 Python 2.x str()s 存储字符,它们存储字节。当然,可以将字符串表示为字节数组,但要做到这一点,您需要一种编码(输入端和输出端都需要使用相同的编码,否则会出现不对齐的丑陋行为); Python 2.x str 不知道需要使用哪种编码来解释它以获取实际字符而不是从中获取字节,这使得它们对于存储实际文本字符串确实不是最佳的。
      【解决方案3】:

      使用 Python 3.2+。它将自动返回字符串而不是 unicode(如在 Python 2.7 中)

      【讨论】:

      • ...因为那里的字符串 unicode。如果用户想要一个非 Unicode 字符串,那么他们在 Python 3 中想要的是一个字节串。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多