我将一些来自刮网的文本插入到我的数据库中。字符串中的某些字段具有不可打印/奇怪的字符。例如,
if text is "C__O__?__P__L__E__T__E",
then the text in the database is stored only as "C__O__"
我知道h(),strip_tags()... sanitize,...等等。但我不想清理这个SQL。 activerecord正确记录SQL,当在phpMySQL中运行时,查询正确执行。在SQL查询生成和正在执行之间发生了一些事情。
非常感谢帮助。
答案 0 :(得分:1)
只需用包含问号的字符串替换字符串中的问号,我也没有找到任何其他方法:
[“C__O __?__ P__L__E__T__E”,'?']
完美无缺。
答案 1 :(得分:0)
C__%D5__M__P__L__%80___T__%80__
C__%3F__M__P__L__%3F___T__%3F__
最后,我在保存之前编写了不可打印的字符。
gsub(/[^[:print:]]/, '')
只有在删除字符串中的无效字符后,才能正确保存该项目。 其他解决方案都没有起作用,部分原因是前面没有清楚地理解问题。
答案 2 :(得分:0)
你可以使用“\?”来逃避问号吗?
答案 3 :(得分:0)
我知道这已经晚了,但是当我们尝试将文件处理为实际使用ISO-8859-1字符编码的UTF-8时,我遇到了同样的问题。我怀疑你在你的拼写中遇到了类似的问题,你假设编码错误,结果导致事情失败。