Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Java: Росіяни букви і не тільки ...

Реферат Java: Росіяни букви і не тільки ...





явно не вказано назву сторінки. Про це треба завжди пам'ятати - Java не буде намагатися передбачити кодування байтів, які Ви передаєте для створення рядка String (так само вона не зможе прочитати Ваші думки з цього приводу :-). Вона просто використовує поточну кодування за замовчуванням. Т.к. ця настройка одна на всі перетворення, іноді можна наткнутися на неприємності. p> Для перетворення з байтів в символи і назад слід користуватися тільки цими методами. Просте приведення типу використовувати в більшості випадків не можна - кодування символів при цьому не буде враховуватися. Наприклад, однією з найбільш поширених помилок є читання даних побайтно за допомогою методу read () з InputStream, а потім приведення отриманого значення до типу char:

InputStream is = ..;

int b;

StringBuffer sb = new StringBuffer ();

while ((b = is.read ())! = -1)

{p> sb.append ((char) b);//

Якщо ж Вам не пощастило, і у Вас старіша версія - для досягнення результату доведеться поізвращаться:

Оригінальний спосіб роботи з кодуваннями пропонує Russian Apache - тут розписано, як саме. p> Своє рішення проблеми так само запропонував В'ячеслав Педак. p> Ну а самий найпростіший варіант витягти таки символи - передавати в комплекті параметрів ім'я кодування (або, якщо ви впевнені в поточній кодуванні броузера, використовувати зумовлену кодування) і використовувати метод перекодування символів:

public void doPost (HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException

{p>// Кодування повідомлень, використана engine

// Деякі використовують ISO-8859-1, деякі кодування

// за замовчуванням - однаковості тут немає

String requestEnc = "ISO-8859-1";

// Кодування, встановлена ​​в броузері

String clientEnc = request.getParameter ("charset");

if (clientEnc == null) clientEnc = "Cp1251";

// Отримання параметра

String value = request.getParameter ("value");

// p> if (value! = null)

value = new String (value.getBytes (requestEnc), clientEnc);

... <В 

JSP p> Технологія JSP (Java Server Pages) дуже схожа на сервлети. По суті справи сервер, при запиті в перший раз на льоту генерує з jsp-сторінок код сервлета, компілює його і запускає його як звичайний сервлет. Тому у JSP виникають схожі проблеми при роботі з російськими буквами. Однак вирішуються вони трохи по іншому. Є три місця де можуть виникнути труднощі - російські літери всередині самої jsp-сторінки, у відповіді клієнту і в запиті від клієнта. Перші два вирішуються завданням на початку сторінки тега page:

В 

Побачивши цю директиву сервер розуміє, що сторінка записана у зазначеній кодуванні, і що в сгенеренний код треба додати виклик response.setContentType () із зазначеним contentType. Якщо сервер підтримує специфікацію Servlet 2.3, то він також додасть і виклик request.se...


Назад | сторінка 4 з 19 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Перетворення і кодування інформації. Код Хеммінга
  • Реферат на тему: Прості обчислення і кодування повідомлень
  • Реферат на тему: Метод кодування Хаффмана
  • Реферат на тему: Кодування і реалізація біологічної інформації в клітині, генетичний код і й ...
  • Реферат на тему: Формати даних: подання і кодування інформації в комп'ютері