Ну, я використовую NotePad ++, і я цього зовсім не бачу! Який найкращий зчитувач текстових файлів для подібних проблем?
Проблема полягає в тому, що "хороший" текстовий редактор повинен мати можливість завантажувати всі текстові кодування прозоро - навіть дурні зламані, як-от UTF-8-плюс-BOM, - що заважає вам побачити проблему. Звичайно, хороший текстовий редактор повинен зберегти UTF-8 без фальшивого BOM або, принаймні, дати вам можливість зробити це, але ви не знатимете його повторно зберегти, якщо ви не побачите там «faux-BOM» .
Причина, коли ви бачите три високобайтові на початку файлу в TextMate, насправді в тому, що TextMate помилився і вгадав кодування як Latin-1 замість UTF-8. Це, ймовірно, відтворює поведінку служби, яку ви надсилаєте, і яка не знає про Unicode, але сама по собі не є бажаною функцією. Це також , чому æ
s і ø
s не вийшли.
Якщо ви хочете чітко бачити кожен байт у файлі, те, що ви хочете, це насправді не текстовий редактор, а шістнадцятковий редактор. Є на вибір багато, наприклад. xvi32 у Windows.
А потім виправте свою програму, щоб не виробляти фіктивні BOM; їм все-таки немає місця у файлі UTF-8, незважаючи на проблеми, які він викликає для програм Unicode. [Я не знаю, про що написано в додатку, але поширеною причиною небажаних BOM є використання Encoding.UTF8
кодування .NET . A new UTF8Encoding(false)
було б кращим.]
Незалежно від того, чи потрібна вам служба UTF-8 або якесь інше кодування, у будь-якому випадку вам потрібно буде запитати операторів цієї послуги. Якщо вони вже описують æ
у вашому файлі високі байти для et al як «невідповідних», ви можете зіткнутися з ситуацією, коли вони взагалі не підтримують жодні символи, що не належать до ASCII, і в цьому випадку вам доведеться розглянути транслітерацію символів відповідним чином для цільової мови, наприклад. æ
-> ae
.