0
psycopg2 데이터를 에 삽입하면 PostgreSQL, '\ x00'이 포함 된 문자열을 삽입 할 수 없습니다.왜 psycopg2는 ' x00'과 같은 문자열을 삽입 할 수 없습니까?
그래서>>> ...
>>> print curs.mogrify('insert into test values (%s, %s)',
... ('hello, world', 'str\x00str'))
insert into test values ('hello, world', 'str')
>>> ...
, '\ x00str'입니다 :
>>> 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()
내가 같은 문자열을 얻을 수 있습니다 : 여기
내 코드? 하지만, 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'는 어디에 있습니까? psycopg2에서 '\ x00'문자열을 어떻게 만들 수 있습니까?
'\\ x00'을 사용해 보셨습니까? '\ x00'이 str을 끝내는 것처럼 보입니다 – pinkdawn
'\\ x00'시도했습니다. 작동합니다. 그러나 '\ x00 \ x01'이 '\\ x00 \\ x01'이되면 길이가 같지 않습니다. – leozhang
\ x 실제로 파이썬에서 어떤 것을 의미합니다 (16 진수). \ x00 == 0, \ x0e == 10 월 15 일; 그래서 len ('\ x00') = 1, len ('\\ x00') = 4; '\\ x00'은 실제로 저장하려는 문자열을 의미합니다. – pinkdawn