Формат строки.

  • Автор темы Автор темы WebByte
  • Дата начала Дата начала

WebByte

Проходящий мимо
Формат строки.

Пытаюсь запихать значения полей формы в
куки.
С английскими буквами все нормально, а когда
передаю русский, в куки пишется что-то вроде

%u041C%u0430%u043A%u0441

Кто-нить знает, что это за формат и как его
к читабельному виду привести?
 
а ты уверен, что это именно на этапе записи в куки появляется, а не раньше?
А вообще это юникод.
как привести - не знаю, не сталкивался.

Но в форуме точно было - поиском найдешь.
 
Расскажу вообще как я это делаю.

просто куки поставить при помощи setcookie() я не могу.
до того места, где они ставятся идет куча ХТМЛ
и от него никак не избавиться. (этот файл я includ'ю)

Куки пишу через JavaScript. Изврат, но что поделать...
То есть в хтмл вставляю теги <cкрыпт></скрыпт>
и между ними делаю document.cookie ....

Так вот. Когда просматриваю сгенеренный код, все вроде по-русски. Но когда делаю print_r($_COOKIE["кука"],
выводится то, что я в первом топике написал...
 
вот что значит сразу делать криво.
Надо не файл инклюдить в html, а html в файл инклюдить
тогда все будет работать.
Ну ищи перекодировщик.
Он несложный должен быть.
 
ага, нашел, строк на 40...
сижу разбираюсь...
По форуму никто конкретно ничего не предлагал...
 
WebByte,
А что, нельзя использовать буферизацию и устанавливать куки в любом месте?
 
Нет, сервак не мой и никто мне файлы конфигурации править не даст.
Но я уже написал функцию в дюжину строк, которая более-менее
верно раскодирывает строку.
Вот ее первое приближение.

Код:
function UniDec($str){
	$decStr="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя";
	if (strpos($str,"%u04")!==FALSE){
		$newstr='';
		$maxi=strlen($str)/6+1;	
		$newstr_a=explode("%u04",$str);
		for ($i=0;$i<$maxi;$i++){
			$newstr.=$decStr[hexdec($newstr_a[$i])-16];
		}
	}else $newstr=$str;	
return $newstr;
}


Так что тема закрыта.
 
Я имел ввиду ob_start() и ob_end_flush(), а между ними в любом порядке выводишь HTML, устанваливаешь cookies
 
Ты прав, но вопрос все-таки заключался в том, что же делать с кодированной строкой.
Но спасибо за замечание.
 
Сверху