psycopg2を使用してPostgreSQLにデータを挿入すると、'\x00' を含む文字列を挿入できません。
これが私のコードです:
>>> import psycopg2
>>> import psycopg2.extensions
>>> conn = psycopg2.connect(database='test')
>>> curs = conn.cursor()
>>> print curs.mogrify('insert into test values (%s, %s)',
('hello, buddy', 'str\x00str'))
>>> curs.close()
>>> conn.close()
次のような文字列を取得できます。
>>> ...
>>> print curs.mogrify('insert into test values (%s, %s)',
... ('hello, world', 'str\x00str'))
insert into test values ('hello, world', 'str')
>>> ...
では、'\x00str' はどこにあるのでしょうか?
しかし、psycopg2では、 unicoding-handlingについて何かを見つけまし た。
['\x01' - '\xff] が機能することを示しています。
次のようなコード:
>>> ...
>>> print curs.mogrify('insert into test values (%s, %s)',
... ('hello, world', 'str\x01\x02\x03...\xffstr'))
insert into test values ('hello, world', 'str\x01\x02\x03...\xffstr')
>>> ...
[質問]:「\x00str」はどこですか? 文字列 '\x00' を psycopg2 で機能させるにはどうすればよいですか?