0
'\260'
(의미는 '°'
)과 같은 일부 문자가있는 텍스트 파일을 읽은 다음 DB (sqlite3)에 추가합니다.(유니 코드) 16 진수에서 8 진수로
그런 다음 DB에서 정보를 얻으려고하지만 SQL 쿼리는 '\xb0'
(이는 '°'
을 의미 함)으로 작성됩니다. XML 파일에서이 정보를 얻으므로.
나는 16 진수 문자를 8 진수로 대체하려고합니다 : text = text.replace(r'\xb0', '\260')
하지만 작동하지 않습니다, 왜? 올바른 SQL 쿼리를 작성할 수 없습니다.
아마도이 문제에 대한 해결책이있을 수 있습니다. 인코딩, \xb0
로
ye, but select * from xxx 여기서 a = '\ xb0C'는 select * from xxx와 같지 않습니다. 여기서 a = '\ 260'이 내 문제입니다. xxx에서 select *를 써야합니까? a = '\ xb0 '.decode ('latin1 ')? – user2973395
@ user2973395 : SQL 매개 변수를 사용하십시오. 'cursor.execute ('select * from xxx 여기서 a =?', (u '\ xb0',))'. –
@ user2973395 : 쿼리를 유니 코드로 만들지 말고 매개 변수 만 만듭니다. –