2016-05-23 90 views
0

我從SFTP下載的供應商處收到一個文件。我們的系統都在Windows上工作。在Windows Notepad ++中打開一個Unix文件?

當我在Notepad ++中打開文件時,狀態欄顯示「UNIX」和「UTF-8」 特殊字符顯示不正確。

enter image description here

我試圖把文件轉換成不同的格式,記事本++允許,但沒有一個轉換的字符「OSC」德國字母「A」。這是一個已知的Unix-Windows事物嗎?我的google-foo顯然不夠好。

  1. 我應該試圖正確顯示文件的哪種轉換?
  2. 如何在C#中以編程方式實現相同?
+0

它被標記爲UNIX,因爲unix中的返回值與windows不同。該文件是ASCII碼,其中字符0-127相同,128-255取決於計算機的語言設置。 – jdweng

回答

2

在Windows上,文件的編碼與編輯器甚至XML文件頭所說的不一致是很常見的。人們很sl。。也許它確實是UTF-16,或者非標準的windows擴展ascii的東西,我認爲可能是CP-1252。 (這在* nix上並不常見,因爲我們通常只使用utf-8,不需要其他人...不說明* nix用戶不那麼草率)

要弄清楚它是哪種編碼,我會製作一個拷貝文件,然後刪除那些沒有問題的位(把Mägenwil作爲整個文件),然後保存,然後使用linux命令「file」來告訴正確的編碼是什麼(只對小文件是可靠的..它不會讀取整個文件;也許notepad ++會做同樣的事情)。刪除其他位的原因是它可能是編輯器用於檢測的UTF-8的混合,以及其他內容。

我會嘗試在linux的iconv命令來測試。例如:

iconv -f UTF-16 -t UTF-8 -o outfile infile 

而且任何編碼的轉換應該可以在C#或任何語言的特性吧,只要你知道它是如何肢解這樣你就可以扭轉這種局面。如果你發現它是utf-8的一部分並且是其他的東西,那麼記住不要轉換整個文件,而只是轉換重要的部分。

+0

*感嘆*謝謝。這些正是我的想法,我已經有了,並發現使用Google搜索,你也描述了我正試圖避免的漫長道路......希望有一個我不知道的魔力子彈...... – KarmaEDV