как закодировать строку в PHP

seosniks
На сайте с 13.08.2007
Offline
389
2847

Доброй ночи.

Есть такая проблемма. Сегодня промучался пол дня.

Есть массив, я так понимаю это символы русских букв. Вродьбы в 16 рично системе.

Как мне сделать чтоб

влово к примеру- вода

было перекодировано в %D0%B2%D0%BE%D0%B4%D0%B0

пробовал разные php функции не помогло


$arr= array('а'=>'%D0%B0','
б '=>'%D0%B1','
в '=>'%D0%B2','
г '=>'%D0%B3','
д '=>'%D0%B4','
е '=>'%D0%B5','
ё '=>'%D1%91','
ж '=>'%D0%B6','
з '=>'%D0%B7','
и '=>'%D0%B8','
й '=>'%D0%B9','
к '=>'%D0%BA','
л '=>'%D0%BB','
м '=>'%D0%BC','
н '=>'%D0%BD','
о '=>'%D0%BE','
п '=>'%D0%BF','
р '=>'%D1%80','
с '=>'%D1%81','
т '=>'%D1%82','
у '=>'%D1%83','
ф '=>'%D1%84','
х '=>'%D1%85','
ц '=>'%D1%86','
ч '=>'%D1%87','
ш '=>'%D1%88','
щ '=>'%D1%89','
ъ '=>'%D1%8A','
ы '=>'%D1%8B','
ь '=>'%D1%8C','
э '=>'%D1%8D','
ю '=>'%D1%8E','
я '=>'%D1%8F');
xpert13
На сайте с 15.09.2008
Offline
127
#1

http://ua2.php.net/manual/ru/function.urlencode.php

Название темы улыбнуло, думал хотите строку от алкозависимости закодировать :)

[Удален]
#2
seosniks:
Доброй ночи.
Есть такая проблемма. Сегодня промучался пол дня.

Есть массив, я так понимаю это символы русских букв. Вродьбы в 16 рично системе.

Как мне сделать чтоб

влово к примеру- вода
было перекодировано в %D0%B2%D0%BE%D0%B4%D0%B0

пробовал разные php функции не помогло


$arr= array('а'=>'%D0%B0','
б '=>'%D0%B1','
в '=>'%D0%B2','
г '=>'%D0%B3','
д '=>'%D0%B4','
е '=>'%D0%B5','
ё '=>'%D1%91','
ж '=>'%D0%B6','
з '=>'%D0%B7','
и '=>'%D0%B8','
й '=>'%D0%B9','
к '=>'%D0%BA','
л '=>'%D0%BB','
м '=>'%D0%BC','
н '=>'%D0%BD','
о '=>'%D0%BE','
п '=>'%D0%BF','
р '=>'%D1%80','
с '=>'%D1%81','
т '=>'%D1%82','
у '=>'%D1%83','
ф '=>'%D1%84','
х '=>'%D1%85','
ц '=>'%D1%86','
ч '=>'%D1%87','
ш '=>'%D1%88','
щ '=>'%D1%89','
ъ '=>'%D1%8A','
ы '=>'%D1%8B','
ь '=>'%D1%8C','
э '=>'%D1%8D','
ю '=>'%D1%8E','
я '=>'%D1%8F');

вроде бы каг urlencode это умеет делать если у вас строка в UTF-8! если не сканает, то попробуйте utf8_encode ;)

seosniks
На сайте с 13.08.2007
Offline
389
#3

кодировка windows-1251

$word="бас";

echo urlencode($word);

отдает %E1%E0%F1

а должен вернуть строку %D0%B1%D0%B0%D1%81

решил сделать простую замену через

$word=str_replace('а','%D0%B0',$word);

Всем спасибо.

[Удален]
#4
seosniks:
кодировка windows-1251
$word="бас";
echo urlencode($word);
отдает %E1%E0%F1
а должен вернуть строку %D0%B1%D0%B0%D1%81

решил сделать простую замену через
$word=str_replace('а','%D0%B0',$word);

Всем спасибо.

вы абсолютно не понимаете чем концептуально отличаются %E1%E0%F1 и %D0%B1%D0%B0%D1%81. и не в заменах, не в кодировании тут дело, а дело тут в том, что у вас строка сп1251, а вы хотите получить urlencoded ДЛЯ ЮТФ8 строки!

<?

$word="бас";
echo urlencode($word)."<br/>";
$word = iconv("cp1251","utf-8",$word);
echo urlencode($word)."<br/>";

проверьте.

http://94.31.169.103/search/urlencode/

%E1%E0%F1

%D0%B1%D0%B0%D1%81

seosniks
На сайте с 13.08.2007
Offline
389
#5
bearman:
вы абсолютно не понимаете чем концептуально отличаются %E1%E0%F1 и %D0%B1%D0%B0%D1%81. и не в заменах, не в кодировании тут дело, а дело тут в том, что у вас строка сп1251, а вы хотите получить urlencoded ДЛЯ ЮТФ8 строки!

<?

$word="бас";
echo urlencode($word)."<br/>";
$word = iconv("cp1251","utf-8",$word);
echo urlencode($word)."<br/>";


проверьте.

http://94.31.169.103/search/urlencode/

%E1%E0%F1
%D0%B1%D0%B0%D1%81

Вы правы. Что то у меня не получилось сразу ее конвертнуть.Наверное плохо старался :D

Спасибо.

[Удален]
#6

seosniks, всегда пожалуйста :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий