pysqlite2: ProgrammingError - You must not use 8-bit bytestrings

后端 未结 5 1470
独厮守ぢ
独厮守ぢ 2021-01-01 23:54

I\'m currently persisting filenames in a sqlite database for my own purposes. Whenever I try to insert a file that has a special character (like é etc.), it throws the follo

5条回答
  •  一向
    一向 (楼主)
    2021-01-02 00:08

    You should pass as Unicode the arguments of your SQL statement.

    Now, it all depends on how you obtain the filename list. Perhaps you're reading the filesystem using os.listdir or os.walk? If that is the case, there is a way to have directly the filenames as Unicode just by passing a Unicode argument to either of these functions:
    Examples:

    • os.listdir(u'.')
    • os.walk(u'.')

    Of course, you can substitute the u'.' directory with the actual directory whose contents you are reading. Just make sure it's a Unicode string.

提交回复
热议问题