[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: windows-1251 => utf-8 = крякозаторы
okapo
всем привет, на 1 сайт менял кодировку с windows-1251 в utf-8

менял базу
в html задал кодировку
каждый файл через notepad++ также поменял на utf-8

и осталось одна проблема в котором не могу понять что не то
user posted image

вот подметил что происходит, где крякозаторы выводится на картинке

вот php код код отвечающий за это

$symbolsdesc = strlen($description);
if ($symbolsdesc > 25)
{
$sdesc = $symbolsdesc-5;
$startbut = rand(5,$sdesc);
}
else
{
$sdesc = $symbolsdesc-3;
$startbut = rand(0,$sdesc);
}
$newdesc = substr($description,0,$startbut);
$newdesc .= "<a class=\"serfgo\" href=\"adview-".$row['id'].".html\" target=\"_blank\" onclick=\"goserf('".$row['id']."');\">";
$endbut = $startbut+3;
$frees = substr($description,$startbut,3);
$other = substr($description,$endbut);
$newdesc .= $frees.'</a>'.$other;


когда был windows-1251 работал нармально все это после кодировки сайта в utf-8

как решать проблему ?



Спустя 10 минут, 20 секунд (30.01.2012 - 21:41) Winston написал(а):
Добавь в начало файла заголовок
header("Content-Type: text/html; charset=utf-8");

А так же изменить
substr на mb_substr

Спустя 1 минута, 39 секунд (30.01.2012 - 21:43) Winston написал(а):
А так же, в кодировке utf-8, strlen возвращает количество байт, а не символов. Для того, чтобы получить количество символов используй mb_strlen

Спустя 1 минута, 22 секунды (30.01.2012 - 21:44) okapo написал(а):
сделал, не помогло sad.gif

Спустя 2 минуты, 7 секунд (30.01.2012 - 21:46) nugle написал(а):
попробуй в конце поставить 'UTF-8' mb_substr($var, 'UTF-8')

Спустя 4 минуты, 39 секунд (30.01.2012 - 21:51) Winston написал(а):
Выведи просто переменную, без substr. Текст нормально выведется?
nugle
Ты не правильно записал.

Спустя 1 минута, 59 секунд (30.01.2012 - 21:53) okapo написал(а):
Вот в конце делал
    $frees = mb_substr($description,$startbut,3);
$frees = mb_substr($frees, 'UTF-8');
$other = mb_substr($description,$endbut);
$other = mb_substr($other, 'UTF-8');


но так же не помогло

Спустя 2 минуты, 35 секунд (30.01.2012 - 21:56) Winston написал(а):
okapo
Ты не правильно записал формат! Вот http://ua.php.net/manual/ru/function.mb-substr.php

Попробуй вывести текст без использования substr/mb_substr, Нормально будет выведено?

Спустя 1 минута, 45 секунд (30.01.2012 - 21:57) okapo написал(а):
Цитата (Winston @ 30.01.2012 - 18:51)
Выведи просто переменную, без substr. Текст нормально выведется?
nugle
Ты не правильно записал.

пробовал

что возле шарика уже нету этих

а вот в тексте только по 1 ой этой крякозатора есть


Чи�Читаем новости проектаЧитаем новости проекта

ДОЛЛАРО�ДОЛЛАРОВЫЙ SEOSPRINT !!!ДОЛЛАРОВЫЙ SEOSPRINT !!!

Спустя 2 минуты, 46 секунд (30.01.2012 - 22:00) nugle написал(а):
Winston
я же указал в конце поставить 'UTF-8'. Между $var и 'UTF-8' естественно сама обрезка идет

Спустя 13 секунд (30.01.2012 - 22:00) Winston написал(а):
При соединении с базой написал?
mysql_query('SET NAMES utf8');


$frees = mb_substr($description,$startbut,3, 'UTF-8');

Спустя 15 минут, 38 секунд (30.01.2012 - 22:16) okapo написал(а):
да там есть mysql_query('SET NAMES utf8')

вот картинка как теперь
user posted image

код
$frees = mb_substr($description,$startbut,3, 'UTF-8');
$other = mb_substr($description,$endbut, 'UTF-8');

Спустя 1 минута, 57 секунд (30.01.2012 - 22:18) nugle написал(а):
$other = mb_substr($description,$endbut, 'UTF-8');

тут один аргумент упущен

Спустя 4 минуты, 12 секунд (30.01.2012 - 22:22) okapo написал(а):
Цитата (nugle @ 30.01.2012 - 19:18)
$other = mb_substr($description,$endbut, 'UTF-8');

тут один аргумент упущен

$frees = mb_substr($description,$startbut,3, 'UTF-8');
$other = mb_substr($description,$endbut,3, 'UTF-8');


если так то поставил, изменений опять нету

Спустя 2 минуты, 23 секунды (30.01.2012 - 22:24) nugle написал(а):
strlen поменял на mb_strlen?

Спустя 9 минут, 46 секунд (30.01.2012 - 22:34) okapo написал(а):
Цитата (nugle @ 30.01.2012 - 19:24)
strlen поменял на mb_strlen?

да сделал так тоже ничего

Спустя 9 минут, 35 секунд (30.01.2012 - 22:44) okapo написал(а):
еще, до шарика есть называния, то что после него уже отсутствует

Спустя 2 минуты, 12 секунд (30.01.2012 - 22:46) bob marley написал(а):
okapo
Попробуй поставить в notepad кодировку UTF-8(без BOM)

Спустя 2 минуты, 40 секунд (30.01.2012 - 22:49) okapo написал(а):
Цитата (bob marley @ 30.01.2012 - 19:46)
okapo
Попробуй поставить в notepad кодировку UTF-8(без BOM)

сделал везде и на этот файл, так как они ваще все кряказаторах был, но после utf8 без bom вот такой результат

Спустя 2 часа, 23 минуты, 48 секунд (31.01.2012 - 01:12) veolancer написал(а):
Создай файл с расширением .htaccess и в нём напиши

AddDefaultCharset UTF8

Положи его в корень сайта и по идее должно всё норм быть

Спустя 1 час, 54 минуты, 54 секунды (31.01.2012 - 03:07) inpost написал(а):
В разделе "Кодировки" есть прикреплённая тема.
И ещё, почему создаёшь тему в неподобающем разделе? smile.gif

Спустя 1 день, 19 часов, 16 минут, 37 секунд (2.02.2012 - 22:24) okapo написал(а):
Цитата (inpost @ 31.01.2012 - 00:07)
В разделе "Кодировки" есть прикреплённая тема.
И ещё, почему создаёшь тему в неподобающем разделе? :)

извени не обротил внимание

кстати нашел решение, через mb_substr
только добавил в код выше

ini_set("mbstring.func_overload", 7);
ini_set("default_charset", "UTF-8");
ini_set("mbstring.language", "Russian");
ini_set("mbstring.internal_encoding", "UTF-8");
ini_set("mbstring.encoding_translation", 1);
ini_set("mbstring.http_input", "UTF-8,KOI8-R,CP1251");
ini_set("mbstring.http_output", "UTF-8");
ini_set("mbstring.detect_order", "UTF-8,KOI8-R,CP1251");
Быстрый ответ:

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