Классический ASP: Как записать, что unicode представляют данные в виде строки в классическом ASP?

Я использую final все время для атрибутов объектов.

final ключевое слово имеет семантику видимости, когда используется на атрибутах объектов. В основном устанавливание значения атрибута конечного объекта происходит - прежде чем конструктор возвратится. Это означает, что, пока Вы не позволяете this, ссылка выходит из конструктора, и Вы используете final для весь , Вы приписываете, Ваш объект (под семантикой Java 5), гарантировал, что был правильно создан, и так как это также неизменно, это может быть безопасно опубликовано к другим потокам.

Неизменные объекты не примерно потокобезопасность. Они также делают намного легче рассуждать об изменениях состояния в Вашей программе, потому что пространство того, что может изменение, сознательно и, если используется последовательно, полностью ограничено только вещами, которые должны изменение.

я иногда также делаю финал методов, но не как часто. Я seldomly делаю финал классов. Я обычно делаю это, потому что у меня есть мало потребности к. Я обычно не использую наследование очень. Я предпочитаю использовать интерфейсы и объектный состав вместо этого - это также предоставляет себя дизайну, который я нахожу, часто легче протестировать. Когда Вы кодируете к интерфейсам вместо реальных классов, тогда Вы не делаете потребность для использования наследования, когда Вы тестируете, как это, с платформами, такими как jMock, намного легче создать фиктивные объекты с интерфейсами, чем это с реальными классами.

я предполагаю, что должен сделать большинство своего финала классов, но я просто еще не вошел в привычку.

13
задан p.campbell 6 December 2009 в 19:31
поделиться

2 ответа

Как насчет определения вашей кодовой страницы в верхней части страницы?

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
15
ответ дан 1 December 2019 в 20:11
поделиться

Мета-заголовок Content-Type информирует браузер о необходимости обработки содержимого, отправленного как поток текста в кодировке UTF-8. Это не гарантирует, что отправленный поток на самом деле является UTF-8. Чтобы правильно обрабатывать UTF-8, вам нужно сделать 3 вещи: -

  1. Убедитесь, что ваш статический контент сохранен в кодировке, совместимой с UTF-8.
  2. Убедитесь, что ваш динамический контент закодирован в UTF-8.
  3. Сообщите клиенту, что содержимое закодировано в кодировке UTF-8.

Пункт 1 требует либо фактического сохранения файла ASP как файла в кодировке UTF-8, либо того, что все ваше статическое содержимое в файле находится в диапазоне символов ASCII ( 0-127). Обратите внимание, что если вы сохраняете как UTF-8, тогда все ваши серверные скрипты должны использовать символы в диапазоне символов ASCII. В Visual Studio это можно сделать, «Сохраняя файл как ...», а затем щелкнув маленькую стрелку на кнопке «Сохранить».

Пункт 2 требует, чтобы для свойства Response.CodePage была задана кодовая страница UTF-8 65001, это можно сделать в коде или добавив атрибут CODEPAGE = 65001 в объявления <% @%> в первой строке файла ASP. Если вы делаете это в коде, вы должны установить его перед любыми вызовами Response.Write . И: не используйте функции chr или asc (они ошибаются при использовании 65001), а используйте вместо них chrw и ascw.

Пункт 3 требует, чтобы заголовок Content-Type содержал charset = квалификатор UTF-8 . Как вы уже делаете, вы можете сделать это с помощью заголовка META. Лично я считаю, что это немного путаница, поэтому я предпочитаю использовать в коде Response.Charset = "UTF-8" . Это помещает квалификатор в истинный HTTP-заголовок Content-Type .

16
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

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