Как я читаю скрытые символы текстового файла?

Я создал текстовый файл из приложения, которое я разработал.

Когда я отправляю текстовый файл в СИСТЕМНУЮ проверку, они (сторонняя система) говорят, что файл недопустим и что файл содержит три символа в начале файла, которые не позволяются также, специальные символы не корректны.

Они также говорят, что я должен использовать любой ISO 8859-1 или PC850.

Ну, я использую Блокнот ++, и я не вижу это вообще! Каково лучшее средство чтения текстового файла для подобных проблем?

Alt text

Я также имею Mac и просто думал, что не забыл открываться в TextMate... WOW! Теперь я знаю то, о чем они говорят!

Как у меня может быть то же в Windows?

Alt text

8
задан 02.05.2016, 23:38

2 ответа

Ну, я использую NotePad ++, и я не вижу это вообще! Каково лучшее средство чтения текстового файла для этого вида проблем?

Проблема, 'хороший' текстовый редактор должен смочь загрузить всю текстовую кодировку прозрачно   —  even, глупые поврежденные как UTF-8-plus-BOM   —  which препятствовал бы тому, чтобы Вы видели проблему. Несомненно, хороший текстовый редактор должен сохранить UTF-8 без поддельного BOM или по крайней мере дать Вам опцию сделать так, но Вы не будете знать, чтобы повторно сохранить его, если Вы не будете видеть поддельный BOM там.

Причина Вы видите три высоких байта в начале файла в TextMate, состоит на самом деле в том, потому что TextMate имеет его неправильно и предположил кодирование латинским 1 вместо UTF-8. Это, по-видимому, воспроизводит поведение сервиса, который Вы отправляете, к которому не знают о Unicode, но это не действительно желательная функция сам по себе. Это также почему æ​s и ø​s не вышли.

Если Вы хотите видеть каждый байт в файле явно, что Вы хотите, не действительно текстовый редактор, но Hex-редактор. Существуют партии для выбора из, например, xvi32 в Windows.

И затем исправьте свое приложение для не создания поддельных BOM; они не имеют никакого места в файле UTF-8 так или иначе, не берут в голову проблемы, которые он вызывает к приложениям не-Unicode. [Я не знаю то, в чем записано приложение, но частая причина нежелательных BOM использует.NET Encoding.UTF8 кодирование. A new UTF8Encoding(false) было бы предпочтительно.]

Хочет ли сервис, к которому Вы отправляете, UTF-8, или некоторое другое кодирование - в любом случае что-то, что необходимо будет спросить операторы того сервиса. Если они уже описывают высокие байты для æ и др. в Вашем файле как по сути 'недопустимый', можно сталкиваться с ситуацией, где они не поддерживают символов неASCII вообще, в этом случае необходимо будет рассмотреть символы транслитерации соответственно для выходного языка, например. æ->ae.

4
ответ дан 07.12.2019, 14:01

Frhed переходит по моему мнению..., это - очень хороший инструмент. И поскольку Arjan указал, Вы сохранили файл, поскольку UTF-8 закодировал документ.

2
ответ дан 07.12.2019, 14:01

Теги

Похожие вопросы