当试图保存到TEXT字段时,文本被内部奇怪的字符切断了

时间:2016-08-29 15:27:48

标签: python postgresql unicode utf-8 psycopg2

在文件中有这样的文字。我想在我的数据库中插入该文本(顺便说一下UTF8编码)。

OK:     "Spanning op P4V2 (TP2)" : 4.00 V DC <= 4.20 V DC
OK:     "Spanning op P1V8_EHSX_BGS2 (TP1030)" : 1.81 V DC >= 1.71 V DC
OK:     "Spanning op P1V8_EHSX_BGS2 (TP1030)" : 1.81 V DC <= 1.89 V DC
LOG:    Waiting for barebox command prompt
LOG:    ^@^@Starting Bootlets...
LOG:
LOG:    Configured for DCDC_BATT only power source.
LOG:    Initialized 1 ram bank(s)
LOG:    Starting secondary bootloader

该表有一个字段&#34;结果&#34;类型&#34; TEXT&#34;。但是当找到&#34; ^ @&#34;时,文件会被切断。字符。之后的所有内容都没有保存在我的数据库中。

我尝试过很多东西:

results = results.encode('utf-8')
self.db.set_client_encoding('UTF8')
c.execute("INSERT INTO ats2_testrun (serial_number_id, test_system_id, date, status_ok, results, author, svn_url, svn_revision_number, service_report_id)  +
                  "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s);",(sid, tsid, tstamp, ok, results, author, svn_url, svn_revision_number, service_report_id))

但它不起作用。有人告诉我将该字段转换为二进制字段,但是如果有办法将其保存到TEXT字段中。我不在乎那些奇怪的字符&#34; ^ @&#34;所以他们可以被删除。

1 个答案:

答案 0 :(得分:1)

0x00^@)是一个字符串终止符。它是唯一一个无法保存在0x00终止字段中的字符(TEXT是)。

更换字符,你就可以了。