Привет всем!
Столкнулся с проблемкой: имелась древняя DBF базочка данных, к которой нужно было прицепиться и выводить на веб-страницу каталог товаров. Всего одна таблица с полями "Тип", "Фирма", "Группа", "Наименование", "Артикул" со всеми вытекающими:
"Канцелярия" "Фирма1" "Аксессуары" "Ежедневник <Access>" "Артикул1"
"Канцелярия" "Фирма1" "Аксессуары" "Ежедневник <Access>" "Артикул2"
"Канцелярия" "Фирма1" "Пишущие принадлежности" "Ручка такая" "Артикул3"
"Канцелярия" "Фирма2" "Пишущие принадлежности" "Ручка сякая" "Артикул4"
"Галантерея" "Фирма1" "Кожание изделия" "Портмоне" "Артикул5"
...
Поскольку она не релятивная, то, чтобы отбирать данные, нужно дергать по содержимому полей.
Все-бы ничего, но, как вы заметили, умненькие "менедьжеры" понатолкали туда, например, таких названий: "Ежедневник <Access>". Естественно запрос типа
catalogue.aspx?type=Канцелярия& ... &name=Ежедневник <Access>&...(!параметры ессно кодированы HttpUtility.UrlEncode, открытым текстом для наглядности)
вызывает возмущение ASP.Net. Отключать проверку не хочется.
Пришлось, чтобы не тормозить, по-быстрому кодировать в Base64. Все работает, но многие строки кодированные таким образом имеют последним знаком "=" или "==".
Например:
catalogue.aspx?type=0Jr...CV0K8=&firm=0KHQl...LQqw==&group=0KHQ... (!кодированные параметры слегка "подрезаны")
ВОПРОС:Теоретически, может-ли это привести к ошибкам парсинга параметров запроса?
Знак "&", в кодированной по Base64 строке, появиться не может.
Перевернув мир - оглянись, может перевернулся ты сам?!