perl从数据库读取,字段具有\ 0\t作为普通文本

0 perl cgi dbi

从一开始就道歉.我无法提供我正在使用的代码.

我通过DBI查询数据库并使用perl通过fetchrow-array打印输出并打印$ variable

但是数据库中的字段包含\ 0\t\r \n等作为普通文本的一部分.

当通过变量和打印命令打印这些字段时,这些\ t\r\0文本字符被错误地打印为制表符,换行符,十六进制字符.我认为无法告诉print忽略任何像这样的字符串.

有任何想法吗?

谢谢.

ike*_*ami 5

使用DBI或打印获取数据都不会转换\t为选项卡.Perl的转换唯一的一次\t,如果它在一个双引号字符串字面发现的是[1] ,这是通过一个文件说perl,do,require或use,或在字符串传递到perl -e或eval EXPR.

如果您有一个选项卡,则表示您正在执行转换\t为选项卡的步骤,或者它实际上是数据库中的选项卡.


  1. 这包括qx和替换表示没有的替代/e.

  • 这不是真的.`print"$ tablefield"`除非被请求,否则不做任何转换(除了在Windows上的LF => CRLF). (2认同)