Существует множество решений, в зависимости от Ваших требований распределения.
Просто используют банку. Это предполагает, что у пользователя есть корректная установленная версия Java, иначе пользователь получит "исключения" версии формата файла класса. Это хорошо для внутреннего распределения в компании.
Использование launch4j и установщик как NSIS. Это дает Вам намного больше контроля, хотя пользователь может все еще сделать глупый материал как удаление среды выполнения Java. Это - вероятно, самый популярный подход, и что я в настоящее время использую.
Использование Webstart. Это также предполагает, что у пользователя есть корректная установленная версия Java, но намного легче начаться. Мой опыт состоит в том, что это хорошо для плотно управляемых сред интранета, но становится болью с большим развертыванием, потому что она имеет немного много странных отказов. Это может поправиться с новой сменной технологией в Java 1.7.
Использование компилятор собственного кода как СТРУЯ Excelsior и распределяет как исполняемый файл или оборачивает его в установщике. Дорогой, и это обычно связывает Вас с немного более старой версией Java, и существует некоторая боль с динамической загрузкой класса, но ее очень эффективное для крупномасштабного внедрения, где необходимо минимизировать стычки поддержки.
Да.
UTF-8 - это CP65001 в Windows (что является просто способом указания UTF-8 в устаревшей кодовой странице). Насколько я знаю, ASP может обрабатывать UTF-8, если указано таким образом.
Да, 65001 - это идентификатор кодовой страницы Windows для UTF-8, как описано на веб-сайте Microsoft . Википедия предлагает , что кодовая страница 128 IBM и кодовая страница 4110 SAP также являются индикаторами для UTF-8.
Ваш код правильный, хотя я предпочитаю устанавливать CharSet в коде, а не использовать метатег: -
<% Response.CharSet = "UTF-8" %>
Кодовая страница 65001 действительно относится к набору символов UTF-8. Вам нужно будет убедиться, что ваша asp-страница (и все ее включенные) сохранены как UTF-8, если они содержат какие-либо символы за пределами стандартного набора символов ASCII.
Указав атрибут CODEPAGE в блоке <% @, вы указывая, что все, что написано с использованием Response.Write, должно быть закодировано в указанную кодовую страницу, в данном случае 65001 (utf-8). Следует иметь в виду, что это не влияет на статический контент, который дословно пересылается байт за байтом в ответ. Отсюда и причина, по которой файл необходимо сохранить с использованием указанной кодовой страницы.
Свойство CharSet ответа устанавливает значение CharSet заголовка Content-Type. Это не влияет на то, как будет закодирован контент, он просто сообщает клиенту, какая кодировка принимается. Опять же, важно, чтобы его значение соответствовало фактической отправленной кодировке.