Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我读了一个文本文件,其中有一些类似的字符'\260'(这意味着'°'),然后我将它添加到 DB(sqlite3)。
'\260'
'°'
之后,我尝试从 DB 中获取信息,但是 sql-query 将被构建'\xb0'(这也意味着'°'),因为我从 XML 文件中获取了这些信息。
'\xb0'
我尝试用八进制字符替换十六进制字符: text =text.replace(r'\xb0', '\260')但它不起作用,为什么?我无法构建正确的 sql 查询。
text.replace(r'\xb0', '\260')
也许这个问题有一些解决方案,例如编码、解码等。
\260 与以下内容相同\xb0:
\260
\xb0
>>> '\xb0' '\xb0' >>> '\260' '\xb0'
您可能希望将输入解码为 unicode 并插入它。如果您的数据编码为拉丁语 1,则解码:
>>> print '\xb0'.decode('latin1') °
sqlite3可以很好地处理 unicode,并且通过解码确保您处理的是文本值,而不是字节值,这可能因编解码器而异。
sqlite3