웹 크롤러로 스칸디나비아 언어 웹 사이트를 읽고 있는데이를 PostgreSQL 데이터베이스에 삽입하려고합니다.Python을 사용하여 PostgreSQL에 utf8 데이터를 삽입 할 때 문제가 발생했습니다.
Insert into name (surname) VALUES ('Børre');
이것은 윈도우 PSQL 쉘에서 수행되었다
원래 나는 수동으로이 같은 문제가 될 것이다 문자를 삽입하려고 UTF-8로 내 PSQL DB를 인코딩하는 시도 .이렇게하면 다음과 같은 오류가 발생합니다. 오류 : "UTF8"인코딩에 대한 바이트 시퀀스가 잘못되었습니다 : 0x9b. 그래서 몇 가지 인터넷 검색을 수행 한 후 클라이언트 인코딩을 latin1로 변경했습니다. 이제 그 성명서는 성공적이었습니다. 서버 인코딩은 여전히 utf8입니다.
내 파이썬 스크립트를 통해 동일한 삽입 작업을 수행 할 때 데이터베이스 이름에 이름이 표시됩니다. 클라이언트의 인코딩을 utf8로 다시 변경하면 틀린 특수 문자가있는 항목도 얻게됩니다.
파이썬 스크립트는 utf8로 인코딩되어 있지만 정확한 이름을 인쇄합니다.
삽입 문 :
이전에 언급 한 바와 같이con = psycopg2.connect(*database details*)
print("Opened database successfully")
cur = con.cursor()
#INSERT NAME
query = "INSERT INTO name (surname) VALUES (%s) RETURNING id"
data = ('børre')
cur.execute(query,data)
, 인쇄 (personObject.surname가) 제공 '보레'
나는 다음 시도 할 경우 : 난에서 다음을 얻을
query = "INSERT INTO name (surname) VALUES (%s) RETURNING id"
data = ('børre'.encode('utf-8'))
cur.execute(query,data)
내 데이터베이스 :
\ x62c383c2b8727265
,
어떤 버전의 파이썬입니까? –
스택 추적을 게시 할 수 있습니까? –
UTF-8 인코딩을 사용하지 않는 이유는 무엇입니까? 오늘날, 그것을 사용하지 않을 이유가 없습니다. – Daniel