Даже если ядро базы данных кэширует данные, индексы или наборы результатов запросов, оно все равно может совершить обратную поездку в базу данных, чтобы ваше приложение могло воспользоваться этим кэшем.
Платформа ORM работает в том же пространстве, что и ваше приложение. Так что туда и обратно нет. Это просто доступ к памяти, который обычно намного быстрее.
Фреймворк также может принять решение хранить данные в кеше, пока это необходимо. База данных может принять решение об истечении срока хранения кэшированных данных в непредсказуемые моменты времени, когда другие одновременные клиенты делают запросы, которые используют кэш.
Ваша платформа ORM на стороне приложения также может кэшировать данные в форме, которую база данных не может вернуть. Например. в виде коллекции объектов Java вместо потока необработанных данных. Если вы полагаетесь на кэширование базы данных, ваш ORM должен повторить это преобразование в объекты, что увеличивает накладные расходы и уменьшает выгоду от кэша.
То, что вы называете «кодирующей информацией», на самом деле является спецификацией. Я подозреваю, что каждый из этих «символов» кодируется отдельно. Чтобы написать спецификацию вручную, вы должны записать ее в виде трех байтов , а не трех символов. Я не знаком с классами ввода-вывода .NET, но вам должен быть доступен метод, который принимает параметр byte или byte [] и записывает их непосредственно в файл.
Между прочим, UTF- 8 Спецификация не является обязательной; фактически, Консорциум Unicode не рекомендует его использование. Если у вас нет конкретной причины для его использования, избавьтесь от некоторых хлопот и оставьте его.
РЕДАКТИРОВАТЬ: Я только что вспомнил, что вы также можете написать фактический символ спецификации , '\ uFEFF '
, и пусть кодировщик обрабатывает это:
context.Response.Write('\uFEFF');
Я думаю, проблема в Excel, основанном на Microsoft Excel искажает диакритические знаки в файлах .csv . Чтобы доказать это, скопируйте образец выходной строки ąęćżźń󳥌ŻŹĆŃŁÓĘ
и вставьте его в тестовый файл с помощью вашего любимого редактора и сохраните как файл .csv в кодировке UTF-8. Откройте в Excel и увидите те же проблемы.