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

WebByte

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

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

%u041C%u0430%u043A%u0441

Кто-нить знает, что это за формат и как его
к читабельному виду привести?
 

RomikChef

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

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

WebByte

Проходящий мимо
Расскажу вообще как я это делаю.

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

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

Так вот. Когда просматриваю сгенеренный код, все вроде по-русски. Но когда делаю print_r($_COOKIE["кука"],
выводится то, что я в первом топике написал...
 

RomikChef

Guest
вот что значит сразу делать криво.
Надо не файл инклюдить в html, а html в файл инклюдить
тогда все будет работать.
Ну ищи перекодировщик.
Он несложный должен быть.
 

WebByte

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

Кай

Guest
WebByte,
А что, нельзя использовать буферизацию и устанавливать куки в любом месте?
 

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;
}

Так что тема закрыта.
 

Кай

Guest
Я имел ввиду ob_start() и ob_end_flush(), а между ними в любом порядке выводишь HTML, устанваливаешь cookies
 

WebByte

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