ASCII или UTF-8?

#text #utf-8 #ascii

Вопрос:

Давным-давно, еще до рождения мировых скриптов, все текстовые файлы были ASCII.
В настоящее время у нас есть мировые скрипты.
Я хотел бы спросить, если я открою текстовый файл в шестнадцатеричном редакторе, есть ли способ определить, что его кодовая страница находится в ASCII или UTF-8?

Комментарии:

1. Эм, что такое «мировой сценарий»? И нет, текстовые файлы никогда не были «полностью ASCII».

2. Извините, world script-это старая технология Apple, позволяющая пользователю вводить в файл языки, отличные от английского, и сохранять их в файле unicode.

3. И нет, файлы были не только ASCII. У нас были различные другие стандарты и соглашения. К счастью, вы никогда не читали об EBCDIC, так что у вас нет кошмаров. И в более поздние времена файлы использовали расширенный ASCII (каждое расширение несовместимо с другими, но для стандартной части ASCII). И если вы хотите хорошо выспаться, не смотрите, что изначально означают первые 32 символа ASCII и как они используются/не используются.

Ответ №1:

UTF-8 обратно совместим с ASCII: текстовый файл ASCII также является текстовым файлом UTF-8.

Если файл содержит байты, начинающиеся с 8 по F, это не ASCII.

Если файл не является ASCII, он может быть UTF-8, если за каждым байтом, начинающимся с C, D, E или F, следует от одного до трех байтов, начинающихся с 8, 9, A или B. Если какой-либо из этих байтов появляется в любом другом контексте, это не UTF-8.

Есть еще несколько требований для допустимого UTF-8, но их сложнее получить с помощью шестнадцатеричного редактора. Видишь https://en.m.wikipedia.org/wiki/UTF-8