尝试保存到 TEXT 字段时,当内部出现奇怪的字符时,文本被截断
Text got cut off when strange chars inside when trying to save into TEXT field
文件中有这样的文本。我想将该文本插入我的数据库(顺便说一句,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
table 有一个类型为 "TEXT" 的字段 "results"。但是,当找到“^@”字符时,文件会被截断。之后的所有内容都不会保存在我的数据库中。
我试过很多东西,比如:
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 字段中。我不关心奇怪的字符“^@”,所以它们可以被删除。
0x00
(^@
) 是字符串终止符。它是唯一不能保存在以 0x00 结尾的字段(TEXT 是)中的字符。
替换字符就可以了。
文件中有这样的文本。我想将该文本插入我的数据库(顺便说一句,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
table 有一个类型为 "TEXT" 的字段 "results"。但是,当找到“^@”字符时,文件会被截断。之后的所有内容都不会保存在我的数据库中。
我试过很多东西,比如:
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 字段中。我不关心奇怪的字符“^@”,所以它们可以被删除。
0x00
(^@
) 是字符串终止符。它是唯一不能保存在以 0x00 结尾的字段(TEXT 是)中的字符。
替换字符就可以了。