iconv не работает транслитерация

Ilia

Новичок
Всем привет, подскажите пожалуйста где моя ошибка, не хочется изобретать велосипед, уверен что функция рабочая.

PHP:
	setlocale(LC_ALL, 'en_US.UTF8');
iconv('UTF-8', 'ASCII//TRANSLIT', utf8_encode($result["p_title"]))
подставляю тайтл продукта, чтобы убедиться дополнительно кодирую его в utf8 (было и без доп кодировки, не работало). для примера в тайтл содержится немецкий: -

PHP:
BH Verlängerung um 2-3 Größen - Mischpaket 6 Stück aller Breiten und Farben
на выходе получаю

PHP:
BH VerlA?ngerung um 2-3 GrA?A?en - Mischpaket 6 StA 1/4 ck aller Breiten und Farben
 

Фанат

oncle terrible
Команда форума
а всё же - каков результат без дополнительного кодирования?
 

Ilia

Новичок
дааа, вы не поверите, в запаре с кучей вариантов убрал енкод и получил свою строку на немецком, но стоило передать русский как снова - ??????????
 

baev

‹°°¬•
Команда форума
Ilia, почитайте в мануале комментарии к iconv().
 

Ilia

Новичок
я прочел что с IGNORE есть проблема, а дальше идет как раз мой случай с немецким, надеялся что поможет и с русским тоже. в общем видимо вариант писать свое.
 

Ilia

Новичок
может пригодится кому
PHP:
function transliterate($st) {    $st = strtr($st, array( 'ж'=>'zh','ё'=>'yo','ч'=>'ch','ш'=>'sh','щ'=>'shch','ю'=>'yu','я'=>'ya',      'Ж'=>'Zh','Ё'=>'Yo','Ч'=>'Ch','Ш'=>'Sh','Щ'=>'Shch','Ю'=>'Yu','Я'=>'Ya','ä'=>'ae','ö'=>'oe','ü'=>'ue','ß'=>'ss','Ä'=>'Ae','Ö'=>'Oe','Ü'=>'Ue',      'æ'=>'ae','Æ'=>'Ae','Á'=>'A','À'=>'A','Â'=>'A','Ą'=>'A','Å'=>'A','Ç'=>'C','Ć'=>'C','Č'=>'C','É'=>'E','È'=>'E','Ê'=>'E','Ë'=>'E','Ę'=>'E','Ė'=>'E','Ě'=>'E', 	 'Ğ'=>'G','Î'=>'I','Ï'=>'I','İ'=>'I','Í'=>'I','I'=>'I','Į'=>'I','Ł'=>'L','Ĺ'=>'L','Ñ'=>'N','Ń'=>'N','Ó'=>'O','Ô'=>'O','Ø'=>'O','Ŕ'=>'R','Ř'=>'R','Ś'=>'S','Š'=>'S','Ş'=>'S', 	 'Ú'=>'U','Ù'=>'U','Û'=>'U','Ų'=>'U','Ū'=>'U','Ů'=>'U','Ý'=>'Y','Ź'=>'Z','Ż'=>'Z','Ž'=>'Z','á'=>'a','à'=>'a','â'=>'a','ą'=>'a','å'=>'a','ç'=>'c','ć'=>'c','č'=>'c','é'=>'e', 	 'è'=>'e','ê'=>'e','ë'=>'e','ę'=>'e','ė'=>'e','ě'=>'e','ğ'=>'g','î'=>'i','ï'=>'i','i'=>'i','í'=>'i','ı'=>'i','į'=>'i','ł'=>'l','ĺ'=>'l','ñ'=>'n','ń'=>'n','ó'=>'o','ô'=>'o', 	 'ø'=>'o','ŕ'=>'r','ř'=>'r','ś'=>'s','š'=>'s','ş'=>'s','ú'=>'u','ù'=>'u','û'=>'u','ų'=>'u','ū'=>'u','ů'=>'u','ý'=>'y','ź'=>'z','ż'=>'z','ž'=>'z','А'=>'A','Б'=>'B','В'=>'V', 	 'Г'=>'G','Ґ'=>'G','Д'=>'D','Е'=>'E','Є'=>'E','З'=>'Z', 	 'И'=>'I','Й'=>'Y','І'=>'I','Ї'=>'I','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R','С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H','Ц'=>'C','Ы'=>'Y','Э'=>'E', 	 'а'=>'a','б'=>'b','в'=>'v','г'=>'g','ґ'=>'g','д'=>'d','е'=>'e','є'=>'e','з'=>'z','и'=>'i','й'=>'y','і'=>'i','ї'=>'i','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p', 	 'р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ы'=>'y','э'=>'e','Ъ'=>'','Ь'=>'','ъ'=>'','ь'=>'',      ));   return $st; }
 

Активист

Активист
Команда форума
Как-то работая активно с iconv (DOM) наблюдал ряд подобных проблем, это баги iconv, и зачастую лечатся путем компиляции с новейшей версией iconv.
 

tony2001

TeaM PHPClub
iconv-ов этих - 4 разных имплементации.
конечно, они отличаются набором фич.
 
Сверху