У меня есть скрипт JQuery, который отправляет содержимое поля формы в простой сервлет. Когда я помещаю китайские иероглифы (в utf8) в поле формы и отправляю сообщения с помощью метода JQuery .ajax (), сервер видит символы в виде вопросительных знаков (欢迎 进入 智慧 的 十年 рассматривается как ?????????? на сервере).
$.ajax({
url: '/url-on-server',
type: 'POST',
data: 'action=SEND&'+ $('#text-field').val()),
success: function(){},
dataType: 'json'
}
Я проверил запрос с помощью FIREBUG и Liveheaders, и они выглядят правильно ...
Content-Type text/plain; charset=UTF-8
Я считаю, что это не относится к серверной части, когда я изменяю html-форму на публикацию без JQuery-скрипта, она прекрасно работает. Я вижу китайские иероглифы на стороне сервера, ничего не меняя на этой стороне.
Еще одна подсказка ..
Когда я публикую форму, используя метод JQuery $ .ajax (). Вот как выглядит запрос в LiveHeaders ...
action=SEND&msg=%E6%AC%A2%E8%BF%8E%E8%BF%9B%E5%85%A5%E6%99%BA%E6%85%A7%E7%9A%84%E5%8D%81%E5%B9%B4
Однако, когда я публикую форму традиционным способом web1.0, это то, что я вижу в живых заголовках.
action=SEND&msg=%26%2327426%3B%26%2336814%3B%26%2336827%3B%26%2320837%3B%26%2326234%3B%26%2324935%3B%26%2330340%3B%26%2321313%3B%26%2324180%3B
Как вы можете видеть, похоже, что параметры кодируются по-другому, но я не смог найти объяснение или способ исправить это в Google.
Заранее спасибо за помощь.