2014-10-03 40 views
1

ASP.NET MVC4应用程序使用npgsql将sql语句写入Postgresql数据库日志文件。如何从字符串中删除不安全字符以便登录C#

sql语句是从ngpsql ErrorSql属性获得的。

有时将二进制数据传递给sql,例如二进制格式的pdf文件。在这种情况下,ErrorSql包含不可打印的字符。试图使用npgsql将此日志记录到数据库导致异常

Postgres的邮件格式无效。 如何替换和删除字符串中的不安全字符,以便它可以安全地记录?

+2

当有一个PDF记录时,你会期望日志包含什么内容?无法想象一个好的条目会包含什么。 – 2014-10-03 09:43:30

+0

显示你如何登录和你的SQL插入语句(log4net配置),我们没有一个魔术弓让我们看到你的代码。如果你知道某些东西是二进制的,你可以使用base64编码将它放入一个可以记录的字符串中。 – Peter 2014-10-03 09:47:09

+0

@JoachimIsaksson我认为,例如0字节看起来像0x00,可读字符不会更改 – Andrus 2014-10-03 10:02:12

回答

0

您可以使用:

Convert.ToBase64String("binary data") 

或适应你的日志接受二进制数据。

+0

这使得所有字符串不可读。如何只转换字符串中的非字符,eq 0字节应该替换为0x00或类似的东西 – Andrus 2014-10-03 10:00:31