значение поля формы экранируется с помощью функции escape () JavaScript
Вот твоя проблема. escape
- неправильный способ создания значений параметров URL, и в общем случае никогда не следует использовать . Вы ищете encodeURIComponent
, который делает это правильно. * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * [9
Если вы используете jQuery, как вы упомянули, вам никогда не нужно создавать строку данных POST вручную; просто перейдите к поиску, подобному {x: '£'}
, и он позаботится о кодировке для вас.
Возможны и другие проблемы с хранением и получением £, если ваше приложение не настроено для корректной обработки Юникода. В идеале вы должны обслуживать свои страницы как UTF-8 и использовать ввод-вывод UTF-8, как упомянуто Дарином, плюс использовать NATIONAL
символов (NVARCHAR
) для хранения строк Unicode в SQL Server.
Я не могу просто преобразовать символ в его HTML-сущность перед сохранением в базу данных, потому что, когда значения извлекаются для отображения на переднем крае веб-сайта, они кодируются в HTML
Хорошо! Это абсолютно правильно. Вы никогда не должны хранить данные в кодировке HTML в базе данных, это совершенно неправильный способ справиться с проблемами выхода. Продолжайте HTML-кодирование всего текста, выводимого на вывод.