проблем с кирилица
10 отговора
301 прегледа
проблем с кирилица
Така значи проблемчето е следното.
идват ми като стрингове различни по кодировка текст. най често UTF-8 и windows-1251.
Проблема е как да визуализирам и двете на екрана.
пример:
%EF%F0%EE%E1%E0 - windows-1251
%D0%BF%D1%80%D0%BE%D0%B1%D0%B0 - UTF-8
Пробвах разни варянти с chr() и convert_cyr_string() но не съм измислил нищо до момента.
Break The UnBreakable
идват ми като стрингове различни по кодировка текст. най често UTF-8 и windows-1251.
Проблема е как да визуализирам и двете на екрана.
пример:
%EF%F0%EE%E1%E0 - windows-1251
%D0%BF%D1%80%D0%BE%D0%B1%D0%B0 - UTF-8
Пробвах разни варянти с chr() и convert_cyr_string() но не съм измислил нищо до момента.
Break The UnBreakable
Re: проблем с кирилица
Поне знаеш ли кой какъв е ? Кой ти е win-1251 и кой UTF-8 ( а дали не е KOI8-R), защото UTF-8 е уникод ;-)))))
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: проблем с кирилица
Не може да се уеднаквят ... дори на теория 
Break The UnBreakable
Break The UnBreakable
Re: проблем с кирилица
Не .. произволни са
Може да е всичко и KOI8-R и ISO... там каквото беше
Break The UnBreakable
Може да е всичко и KOI8-R и ISO... там каквото беше
Break The UnBreakable
Редактирано от nupaT на
Re: проблем с кирилица
Ако си сигурен, че са кирилица, само кирилица и нищо друго освен кирилица - може да се понаправинещо по въпроса. Кажи ми от къде ги взимаш тези стрингове, кои са възможните формати и после какво ги правиш ...
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: проблем с кирилица
Аз имах този проблем, но при мене нещата постъпващите данни са:
win1251 и UTF - направих филтър, който разпознава, кои от двата енкодинга ми е на входа и ако е UTF го преобразувам към win-1251.
win1251 и UTF - направих филтър, който разпознава, кои от двата енкодинга ми е на входа и ако е UTF го преобразувам към win-1251.
Re: проблем с кирилица
Взимам ги от $_SERVER['HTTP_REFERER']
идеята е от тези който са търсачки да отделя ключовите думи ако има такива в УРЛ-то един вид ако променливите за търсене се предават с гет метод. примери гоогле дир.бг и т.н.
използвам parse_url за да разделя адреса на части и в часта query използвам explode и след това split. за отделните променливи. Може да се направи малко дървено като изброявам в един масив какъв е енкодинг-а на всяка от търсачките или поне на повечето но .. не ми харесва идеята. Търся по универсално решение
Break The UnBreakable
идеята е от тези който са търсачки да отделя ключовите думи ако има такива в УРЛ-то един вид ако променливите за търсене се предават с гет метод. примери гоогле дир.бг и т.н.
използвам parse_url за да разделя адреса на части и в часта query използвам explode и след това split. за отделните променливи. Може да се направи малко дървено като изброявам в един масив какъв е енкодинг-а на всяка от търсачките или поне на повечето но .. не ми харесва идеята. Търся по универсално решение
Break The UnBreakable
Re: проблем с кирилица
Резултата можеш да видиш тук:
[линк]
Повечето са с UTF - ски енкодинг, има 1-2 източника под win-1251
[линк]
Повечето са с UTF - ски енкодинг, има 1-2 източника под win-1251
Re: проблем с кирилица
Намерих решение :)
Все пак 10x за помощтта. Само да го допиша и ще го постна за архива
Break The UnBreakable
Все пак 10x за помощтта. Само да го допиша и ще го постна за архива
Break The UnBreakable
Re: проблем с кирилица
Ето и решението:
$windows1251 = array('%E0','%E1','%E2','%E3','%E4','%E5','%E6','%E7','%E8','%E9','%EA','%EB','%EC','%ED','%EE','%EF','%F0','%F1','%F2','%F3','%F4','%F5','%F6','%F7','%F8','%F9','%FC','%FE','%F7');
$utf8 = array('%D0%B0','%D0%B1','%D0%B2','%D0%B3','%D0%B4','%D0%B5','%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%8C','%D1%8E','%D1%8F');
str_replace($windows1251,$utf8,$qyery)
Break The UnBreakable
$windows1251 = array('%E0','%E1','%E2','%E3','%E4','%E5','%E6','%E7','%E8','%E9','%EA','%EB','%EC','%ED','%EE','%EF','%F0','%F1','%F2','%F3','%F4','%F5','%F6','%F7','%F8','%F9','%FC','%FE','%F7');
$utf8 = array('%D0%B0','%D0%B1','%D0%B2','%D0%B3','%D0%B4','%D0%B5','%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%8C','%D1%8E','%D1%8F');
str_replace($windows1251,$utf8,$qyery)
Break The UnBreakable