2011-06-15 47 views
2

由於某些原因,如下圖所示,我的系統在ASCII文本文件中每個字符後總是添加00。在使用文本文件的二進制格式視圖時(例如在UltraEdit中),我只能找到這個問題。如果我用記事本打開它,一切都可以。但是,這是一個巨大的問題,因爲如果我這個文件發送到另一個系統進行處理,他們抱怨這不是一個有效的文件,因爲所有的00的:奇怪的編碼問題,添加了003

enter image description here

是不是因爲某些系統設置?

+1

你如何寫文件?看來你正在使用多字節編碼,如UTF-16。您應該同意使用其他編碼系統。 (http://www.joelonsoftware.com/articles/Unicode.html) – driis 2011-06-15 20:37:44

回答

8

這不是一個ASCII文件。這是一個UTF-16文件(猜測;看起來很可能) - 基本上這就是記事本正在檢測的內容。

或者:

  • 變化你是如何產生的文件,以實際使用 ASCII(或潛在的UTF-8)
  • 告訴接收系統,以它讀成UTF-16
+0

謝謝,我沒有寫文件,我正在從文件系統讀取文件,將內容寫入sql服務器並將其讀回來。我發現我的文件在文件系統上沒問題。它在數據庫中遇到了雙零(00)的問題,並且在讀出數據庫時遇到了同樣的問題。 – adamgump 2011-06-15 20:42:46

+2

@adamgump:但* *有*創建了該文件。它不只是神奇地到達那裏。因此,無論您需要更改生成文件的內容,還是更改了閱讀內容的方式。你當然可以通過顯式傳入'Encoding.Unicode'來讀取它。 – 2011-06-15 20:45:24

+0

我會看看我是否可以對寫入SQL部分做任何事情。 – adamgump 2011-06-15 20:46:58