まず初めに、はっきりとさせておきたいことがあります。この問題の直接の原因がhueyやpeeweeではないということです。
huey.contrib.sql_huey.SqlHuey
は引数databaseにDSNを取ります。DSNとは{schema}://{username}:{password}@{host}:{port}/{database}
のような文字列です。具体例を上げるとhuey.contrib.sql_huey.SqlHuey(database='postgresql://postgres:password@localhost:5432/mydatabase')
です。DSNはURIと同じ形式です。
このパスワードの部分がpass?word
のように?
を含んでいると、パスワードがそこで切られてしまい、データベースに接続できなくなります。
パスワードにと言っていますが、ユーザ名などにあったとしても同じ問題を引き起こします。ただパスワード以外に問題を起こす一部の記号を使うことは滅多にないことでしょう。