проблем с кирилица

10 отговора 301 прегледа
#1

проблем с кирилица

Така значи проблемчето е следното.
идват ми като стрингове различни по кодировка текст. най често 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
Отговор
в отговор на nupaT #2

Re: проблем с кирилица

а пробвал ли си да ги уеднаквиш ?

Отговор
в отговор на nupaT #3

Re: проблем с кирилица

Поне знаеш ли кой какъв е ? Кой ти е win-1251 и кой UTF-8 ( а дали не е KOI8-R), защото UTF-8 е уникод ;-)))))

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на Bълk #4

Re: проблем с кирилица

Не може да се уеднаквят ... дори на теория

Break The UnBreakable
Отговор
в отговор на ro6avia #5

Re: проблем с кирилица

Не .. произволни са
Може да е всичко и KOI8-R и ISO... там каквото беше

Break The UnBreakable

Редактирано от nupaT на

Отговор
в отговор на nupaT #6

Re: проблем с кирилица

Ако си сигурен, че са кирилица, само кирилица и нищо друго освен кирилица - може да се понаправинещо по въпроса. Кажи ми от къде ги взимаш тези стрингове, кои са възможните формати и после какво ги правиш ...

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на nupaT #7

Re: проблем с кирилица

Аз имах този проблем, но при мене нещата постъпващите данни са:
win1251 и UTF - направих филтър, който разпознава, кои от двата енкодинга ми е на входа и ако е UTF го преобразувам към win-1251.

Отговор
в отговор на ro6avia #8

Re: проблем с кирилица

Взимам ги от $_SERVER['HTTP_REFERER']
идеята е от тези който са търсачки да отделя ключовите думи ако има такива в УРЛ-то един вид ако променливите за търсене се предават с гет метод. примери гоогле дир.бг и т.н.

използвам parse_url за да разделя адреса на части и в часта query използвам explode и след това split. за отделните променливи. Може да се направи малко дървено като изброявам в един масив какъв е енкодинг-а на всяка от търсачките или поне на повечето но .. не ми харесва идеята. Търся по универсално решение

Break The UnBreakable
Отговор
в отговор на Bogomil #9

Re: проблем с кирилица

Резултата можеш да видиш тук:
[линк]

Повечето са с UTF - ски енкодинг, има 1-2 източника под win-1251

Отговор
в отговор на Бoroмил #10

Re: проблем с кирилица

Намерих решение :)

Все пак 10x за помощтта. Само да го допиша и ще го постна за архива

Break The UnBreakable
Отговор
в отговор на nupaT #11

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
Отговор