Как добавить информацию о кодировании к ответному потоку в ASP.NET?

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

Платформа ORM работает в том же пространстве, что и ваше приложение. Так что туда и обратно нет. Это просто доступ к памяти, который обычно намного быстрее.

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

Ваша платформа ORM на стороне приложения также может кэшировать данные в форме, которую база данных не может вернуть. Например. в виде коллекции объектов Java вместо потока необработанных данных. Если вы полагаетесь на кэширование базы данных, ваш ORM должен повторить это преобразование в объекты, что увеличивает накладные расходы и уменьшает выгоду от кэша.

14
задан famousgarkin 7 January 2012 в 11:15
поделиться

2 ответа

То, что вы называете «кодирующей информацией», на самом деле является спецификацией. Я подозреваю, что каждый из этих «символов» кодируется отдельно. Чтобы написать спецификацию вручную, вы должны записать ее в виде трех байтов , а не трех символов. Я не знаком с классами ввода-вывода .NET, но вам должен быть доступен метод, который принимает параметр byte или byte [] и записывает их непосредственно в файл.

Между прочим, UTF- 8 Спецификация не является обязательной; фактически, Консорциум Unicode не рекомендует его использование. Если у вас нет конкретной причины для его использования, избавьтесь от некоторых хлопот и оставьте его.

РЕДАКТИРОВАТЬ: Я только что вспомнил, что вы также можете написать фактический символ спецификации , '\ uFEFF ', и пусть кодировщик обрабатывает это:

context.Response.Write('\uFEFF');
23
ответ дан 1 December 2019 в 06:43
поделиться

Я думаю, проблема в Excel, основанном на Microsoft Excel искажает диакритические знаки в файлах .csv . Чтобы доказать это, скопируйте образец выходной строки ąęćżźń󳥌ŻŹĆŃŁÓĘ и вставьте его в тестовый файл с помощью вашего любимого редактора и сохраните как файл .csv в кодировке UTF-8. Откройте в Excel и увидите те же проблемы.

2
ответ дан 1 December 2019 в 06:43
поделиться
Другие вопросы по тегам:

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