2016-05-23 3 views
0

Я получаю файл от поставщика, который я загружаю на SFTP. Наши системы работают в Windows.Открытие файла Unix в Windows Notepad ++?

Когда я открываю файл в Notepad ++, в строке состояния говорится «UNIX» и «UTF-8» Специальные символы отображаются неправильно.

enter image description here

Я попытался преобразовать файл в Блокнот различных форматов ++ позволяет, но никто не преобразовал символ «OSC» на немецкую букву «А». Это известная Unix-Windows-вещь? Мой google-foo, очевидно, недостаточно хорош.

  1. Какое преобразование следует попробовать правильно отобразить файл?
  2. Как я могу добиться того же программно в C#?
+0

Он помечается как UNIX, потому что возврат в unix отличается от окон. Файл ASCII, где символы 0-127 одинаковы, а 128-255 различаются в зависимости от языковых настроек компьютера. – jdweng

ответ

2

Общепринято для окон, что кодировка файла не соответствует тому, что говорит редактор или даже его заголовок xml. Люди неряшливы. Может быть, это действительно UTF-16, или нестандартные окна с расширением ascii, которые, я думаю, вероятно, cp-1252. (Это не часто встречается на * nix, так как мы все обычно просто используем utf-8, не нужно для других ... не говоря, что пользователи nix гораздо менее неаккуратные)

Чтобы выяснить, какая кодировка, я бы сделал скопируйте файл, а затем удалите биты, которые не являются проблемой (оставив Mägenwil как весь файл), а затем сохраните и используйте команду «файл» linux, которая сообщит, что такое правильная кодировка (надежна только для небольших файлов .. он не читает весь файл, может быть, notepad ++ сделает то же самое). Причина удаления других битов состоит в том, что это может быть сочетание UTF-8, которое редактор использовал для обнаружения, плюс что-то еще.

Я бы попробовал команду iconv в linux для тестирования. Например:

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

И любое преобразование кодирования должно быть возможно в C# или любой функциональный язык, до тех пор, как вы знаете, как это было изуродовано, так что вы можете повернуть его вспять. И если вы обнаружите, что это часть utf-8 и часть чего-то еще, тогда не забудьте не конвертировать весь файл, а только важные части.

+0

* вздох * спасибо. Это именно мои мысли, которые я уже имел, и нашел googling, и вы также точно описываете длинный путь, который я пытался избежать ... Надеюсь на волшебную пулю, о которой я не знал ... – KarmaEDV