Я видел этот пост:  символы, добавленные к начало каждого файла.
В этом случае автор вручную читал исходный файл и записывал содержимое. В моем случае я абстрагирую его через HttpRequest.TransmitFile ():
public void ProcessRequest(HttpContext context)
{
HttpRequest req = context.Request;
HttpResponse resp = context.Response;
resp.ContentType = "application/javascript";
resp.TransmitFile("foo.js");
resp.TransmitFile("bar.js");
resp.TransmitFile("baz.js");
}
Файлы .js действительно закодированы в UTF-8. Это означает, что  BOM неправильно отображается в начале каждого файла, кроме первого.
Преимущества функции TransmitFile() заключаются в том, что (а) она абстрагирует весь процесс чтения+записи и (б) она оптимизирована таким образом, чтобы сначала не считывать файлы в память, что чрезвычайно важно, когда файлы большие и/или у вас много одновременных запросов. Но обратная сторона в том, что я не могу перекодировать его в UTF-8 без спецификации. (Думаю, это пример дырявой абстракции.)
Есть ли элегантный способ решить эту проблему? Спасибо!