[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с кодировкой при вводе данных в функцию
Бобр Добр 2012
Есть такой код:
<?php
function
rus2lat($text, $lang = 'ru-en')
{
echo $text[0]; //выведет абракадабру :D
$symbols = array (
'а' => 'a',
'б' => 'b',
'в' => 'v'
#и т.д.
);
if($lang == 'en-ru'){
$symbols = array_flip($symbols);
}
$count = strlen($text);
$new = '';
for($a = 0; $a<$count; $a++)
{
foreach($symbols as $k=>$v)
{
if($k == $text[$a]){$new .= $v; }
}

if(!isset($new[$a])){$new .= $text[$a]; }
}

return $new;
}
?>

ошибка в том что если транслировать ru-en (т.е. на вход ф-и даю русские символы) то скрипт не работает, т.к. кодировка введённого текста не правильная.

Проблема при кодировке utf-8 в ansi всё ок.



Спустя 1 минута, 9 секунд (18.12.2011 - 22:24) Игорь_Vasinsky написал(а):
у тя файл в не правильной кодировке.

Спустя 1 минута, 36 секунд (18.12.2011 - 22:25) Winston написал(а):
Напиши в начале ф-и
$text = preg_split('##u', $text);

И потом сможешь выводить $text[0]

Спустя 4 минуты, 6 секунд (18.12.2011 - 22:29) Бобр Добр 2012 написал(а):
Цитата (Игорь_Vasinsky @ 18.12.2011 - 19:24)
у тя файл в не правильной кодировке.

файл кадрируется в utf-8, в чём тут проблема...

@Winston: поставил

Notice: Array to string conversion in W:\html\test\www\index.php on line 21(строчки не совпадают)

Спустя 3 минуты, 6 секунд (18.12.2011 - 22:33) Бобр Добр 2012 написал(а):
можете объяснить в чём причина ошибки.

Спустя 1 минута, 48 секунд (18.12.2011 - 22:34) Winston написал(а):
А, ну тогда напиши
$text2 = preg_split('##u', $text);

Если нужно обращаться к буквам слова, как к элементам массива.

Спустя 7 минут, 34 секунды (18.12.2011 - 22:42) Бобр Добр 2012 написал(а):
@winston
echo $text[0]; я так сказать для диагностики написал. Проблема в том что скрипт введённые символы не правильно понимает. Можно конечно их перекодировать... но это какие то костыли) Я не могу понять почему так происходит, ведь весь файл в одной кадровике а эти символы неправильно кадируются.

Спустя 4 минуты, 31 секунда (18.12.2011 - 22:46) Winston написал(а):
Цитата (Бобр Добр 2012 @ 18.12.2011 - 21:42)
Проблема в том что скрипт введённые символы не правильно понимает

Это из-за того, что в utf-8 кириллица занимает не 1, а 2 и более байт. Посмотри это.

Спустя 7 минут, 20 секунд (18.12.2011 - 22:54) Бобр Добр 2012 написал(а):
о спасибо!
Быстрый ответ:

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