2014-10-03 45 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