ObjectScript разработан таким образом, чтобы иметь полную поддержку в разработке сайтов и скриптов в кодировке UTF-8. Что это значит? Вы можете писать код скриптов и веб-страниц в вашем любимом редакторе прямо в кодировке UTF-8. Многие редакторы при этом добавляют в начало файла BOM (Byte Order Mark).

Пример BOM при просмотре тестового файла в шестнадцатиричном виде:

ObjectScript автоматически обрабатывает BOM, делая это прозрачно для разработчика.

В отличии от OS, во многих др. языках программирования BOM создает много проблем в веб-разработке, т.к. байты (составляющие BOM) отправляются в выходной поток данных генерируемых сервером. Зачастую программист даже не знает об этом, т.к. BOM не показывается в большинстве редакторов.

Это приводит к тому, что становится невозможным отправка заголовков HTTP. Например, если программист захочет в коде установить заголовок HTTP Content-type: image/png, то не сможет этого сделать после исполнения файла, содержащего BOM.

В ObjectScript такой проблемы нет, ObjectScript автоматически обрабатывает BOM таким образом, чтобы он не мешал в работе.

Кроме этого ObjectScript имеет все необходимые функции для работы со строками в кодировке UTF-8 (вычисление длины строки, поиск подстроки и др.), а также имеет поддержку UTF-8 в регулярных выражениях.

Cогласно спецификации HTTP протокола тело данных (body) распологается после заголовков (headers). Пример ответа сервера по протоколу HTTP (заголовки от тела отделены пустой строкой):

HTTP/1.1 200 OK
Date: Mon, 12 Mar 2001 19:12:16 GMT
Server: Apache/1.3.12 (Unix) Debian/GNU mod_perl/1.24
Last-Modified: Fri, 22 Sep 2013 14:16:18
ETag: "dd7b6e-d29-39cb69b2"
Accept-Ranges: bytes
Content-Length: 3369
Connection: close
Content-Type: text/html

[File content goes here]

Именно поэтому, если началась отправка тела HTTP пакета, то все заголовки уже находятся до тела и больше не могут быть изменены.

Fork me on GitHub