[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кодировки-кодировки
igorpromen2009
Парни, здорово! Никогда не загонялся кодировками, работал в cp1251, время от времени конвертируя строки при работе с ajax. И тут столкнулся с такой штукой (прошу не пинать):
простенький скрипт для транслитерации на выходе дает кракозяблы:

Особенности:
1.Кодировки файлов: utf-8
2. iconv_set_encoding("input_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
iconv_set_encoding("internal_encoding", "UTF-8");
3.htaccess: addDefaultCharset UTF-8

Пример кода:
	function translit($st)
{
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_ ",
"abvgdeeziyklmnoprstufh-iei-");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ /",
"ABVGDEEZIYKLMNOPRSTUFH-IEI-");

return $st;
}

//используем функцию
echo translit('русское слово');//здесь на выходе кракозяблики

спасибо, что поняли правильно
Winston
Твоя функция будет работать если ты будешь использовать кодировку cp1251

http://ua1.php.net/strtr
Цитата
Если указаны три аргумента, эта функция возвращает копию str, в которой все вхождения каждого символа (однобайтного) из from были заменены на соответствующий символ в параметре to, т.е. каждое вхождение из $from[$n] заменяется на $to[$n], где $n это корректное смещение строки в обоих аргументах.


В utf-8 нужно массив использовать

<?php

function
translit($st)
{
$r_lower = preg_split('//u', 'абвгдеёзийклмнопрстуфхъыэ_ ', -1, PREG_SPLIT_NO_EMPTY);
$e_lower = preg_split('//', 'abvgdeeziyklmnoprstufh-iei-', -1, PREG_SPLIT_NO_EMPTY);
$lower_replace = array_combine($r_lower, $e_lower);
$st = strtr($st, $lower_replace);

$r_upper = preg_split('//u', 'АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ /', -1, PREG_SPLIT_NO_EMPTY);
$e_upper = preg_split('//', 'ABVGDEEZIYKLMNOPRSTUFH-IEI-', -1, PREG_SPLIT_NO_EMPTY);
$upper_replace = array_combine($r_upper, $e_upper);
$st = strtr($st, $upper_replace);

return $st;
}

//используем функцию
echo translit('русское слово');//здесь на выходе все OK :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.