terrom 0 Опубликовано 24 октября, 2007 Жалоба Share Опубликовано 24 октября, 2007 Слушай, а почему этот сайт не на utf-8??? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 октября, 2007 Автор Жалоба Share Опубликовано 24 октября, 2007 Потому что CMS Xoops и форум SMF не в utf8 кодировке. По большому счёту без нет никакой разницы, какая кодировка страницы. Просто utf8 универсальная кодировка, она едина для всех языков. Например если у тебя магазин на немецком и русском одновременно, то в случае НЕ utf8, русские символы не будут видны в немецкой версии и наоборот. С utf8 такой проблемы не будет. А так как магазином пользуются всё-таки не только в России, но я знаю например, что пользуются и в Израиле, Польше, Азербайджане, Бельгии, Германии и т.д., я вот посчитал, что несмотря на все проблемы выбор utf8 кодироки - это правильны выбор. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 30 октября, 2007 Автор Жалоба Share Опубликовано 30 октября, 2007 Ну тогда: function vam_break_string($string, $len, $break_char = '-') { $l = 0; $output = ''; $string = iconv('utf-8', 'cp1251', $string); for ($i=0, $n=strlen($string); $i<$n; $i++) { $char = substr($string, $i, 1); if ($char != ' ') { $l++; } else { $l = 0; } if ($l > $len) { $l = 1; $output .= $break_char; } $output .= $char; } $output = iconv('cp1251', 'utf-8', $output); return $output; }[/code]Если нет обработки мультибайтовых строк, то самое простое использовать однобайтовую, а для этого надо перекодировать. Другое дело, что сразу возникнут проблемы с языками не совместимыми с cp1251.Добавил данный код в магазин.Правда добавил проверку - if (function_exists('iconv')) ... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 ноября, 2007 Автор Жалоба Share Опубликовано 6 ноября, 2007 Вот ещё такой вот вариант у меня работает нормально, без использования iconv: function vam_break_string($string, $len, $break_char = '-') { $l = 0; $output = ''; for ($i=0, $n=mb_strlen($string); $i<$n; $i++) { $char = mb_substr($string, $i, 1); if ($char != ' ') { $l++; } else { $l = 0; } if ($l > $len) { $l = 1; $output .= $break_char; } $output .= $char; } return $output; } if (function_exists('mb_substr')) { mb_internal_encoding("UTF-8"); } else { function mb_substr($str, $start, $len = '', $encoding="UTF-8"){ $limit = strlen($str); for ($s = 0; $start > 0;--$start) {// found the real start if ($s >= $limit) break; if ($str[$s] <= "\x7F") ++$s; else { ++$s; // skip length while ($str[$s] >= "\x80" && $str[$s] <= "\xBF") ++$s; } } if ($len == '') return substr($str, $s); else for ($e = $s; $len > 0; --$len) {//found the real end if ($e >= $limit) break; if ($str[$e] <= "\x7F") ++$e; else { ++$e;//skip length while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit) ++$e; } } return substr($str, $s, $e - $s); } }if (!function_exists('mb_strlen')){ function mb_strlen($t, $encoding = 'UTF-8') { return strlen(utf8_decode($t)); }} [/code] Ссылка на сообщение Поделиться на другие сайты
redic 0 Опубликовано 10 ноября, 2007 Жалоба Share Опубликовано 10 ноября, 2007 Смею заметить, что в случае использования функция обработки мультибайтовых строк (mb_*) их надо использовать либо с указанием кодировки (в данном случае UTF-8), которую надо добавить как последний параметр в функции (например mb_strlen($string,'UTF-8') или mb_substr($string, $i, 1,'UTF-8')), либо надо в самом начале всех скриптов (наверно application_top.php) добавить mb_internal_encoding('UTF-8') Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 10 ноября, 2007 Жалоба Share Опубликовано 10 ноября, 2007 Точно! В russian.php. Спасибо что напомнил! Ссылка на сообщение Поделиться на другие сайты
terrom 0 Опубликовано 10 ноября, 2007 Жалоба Share Опубликовано 10 ноября, 2007 Распишите теперь пожалуйста расширенные инструкции для чайников! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 ноября, 2007 Автор Жалоба Share Опубликовано 10 ноября, 2007 terrom А у тебя какая проблема? Ссылка на сообщение Поделиться на другие сайты
terrom 0 Опубликовано 10 ноября, 2007 Жалоба Share Опубликовано 10 ноября, 2007 Вот посмотри http://shop.badmintonpro.com/, я код изменил как ты написал, но все равно не переносит. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 ноября, 2007 Автор Жалоба Share Опубликовано 10 ноября, 2007 Почему, вроде нормально всё, проблемы больше этой нет. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 ноября, 2007 Автор Жалоба Share Опубликовано 10 ноября, 2007 У тебя описания налипают друг на друга, используй вот этот /templates/vamshop/stylesheet.css файл. stylesheet.css Ссылка на сообщение Поделиться на другие сайты
Safer 0 Опубликовано 20 ноября, 2007 Жалоба Share Опубликовано 20 ноября, 2007 у меня такая проблемка постоянно слетает кодировка после обновления, в браузере постоянно приходится ставить в ручную utf-8 Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 ноября, 2007 Автор Жалоба Share Опубликовано 20 ноября, 2007 А попробуй вот этот совет - http://vamshop.ru/support/modules/smartfaq/faq.php?faqid=52 Ссылка на сообщение Поделиться на другие сайты
Safer 0 Опубликовано 20 ноября, 2007 Жалоба Share Опубликовано 20 ноября, 2007 спасибо все получилось Ссылка на сообщение Поделиться на другие сайты
a69 0 Опубликовано 25 ноября, 2007 Жалоба Share Опубликовано 25 ноября, 2007 Доброго дня Решил немного поэкспериментировать у меня магазин на 1.4, сделал дубликат, и перевел дубликат на 1.5, вот получилось что то, что я вбивал - кракозяблики, то что родное все в порядке. в .htaccess вбил нужное Как так получилось? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 ноября, 2007 Автор Жалоба Share Опубликовано 25 ноября, 2007 Дай ссылку на магазин, как это выглядит, а то не совсем понятно. Ссылка на сообщение Поделиться на другие сайты
a69 0 Опубликовано 25 ноября, 2007 Жалоба Share Опубликовано 25 ноября, 2007 В ПМ Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 ноября, 2007 Автор Жалоба Share Опубликовано 26 ноября, 2007 А это точно версия 1.35? Точно в /inc/vam_db_connect.inc.php указана кодировка соединения с базой utf8? Судя по внешнему виду, кодировка базы не та. Нужно тогда руками выгржать базу данных, переводить её в utf8 и назад загружать в магазин. Ссылка на сообщение Поделиться на другие сайты
a69 0 Опубликовано 26 ноября, 2007 Жалоба Share Опубликовано 26 ноября, 2007 О версии я указал пару сообщений назад, "Ответ #89" Повторюсь: Я хотел перевести версию 1.4 на версию 1.5 В архиве апгрейта на версию 1.5 прилагался текстовый файл, где была ссылка на этот топик, для вопросов при проблемах при переходе. После апгрейта, русские буквачки что шли по умолчанию с ВамШопом переконвертировались, а все что я набивал непосильным трудом - как были в кракозябликах так и остались. p.s. А как руками перевести базу в utf8? p.p.s Вот что в файле /inc/vam_db_connect.inc.php @mysql_select_db($database); @mysql_query("SET CHARACTER SET utf8"); @mysql_query("SET NAMES utf8"); @mysql_query("SET COLLATION utf8_general_ci"); Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 ноября, 2007 Автор Жалоба Share Опубликовано 26 ноября, 2007 Во-первых, пиши правильно версии, если можно, а то не понятно. 1.35 и 1.35. Ты сделал копию базы перед установкой 1.35 патча? Если сделал, попробуй так: Открывай этот файл в каком-то редактор текстовом, который умеет сохранять в utf8. Сохраняй базу в utf8, загружай в mysql её, затем ставь 1.35 патч, только не запускай скриптик cp1251toutf8, у тебя база уже в utf8 кодивровке. т.е. тебе нужно руками перевести базу в utf8, затем ставить 1.35 патч, не запуская файл cp1251toutf8.php, тогда, по идее, будет нормально. Ссылка на сообщение Поделиться на другие сайты
a69 0 Опубликовано 26 ноября, 2007 Жалоба Share Опубликовано 26 ноября, 2007 Ага, сча попробую и доложу! Ссылка на сообщение Поделиться на другие сайты
a69 0 Опубликовано 26 ноября, 2007 Жалоба Share Опубликовано 26 ноября, 2007 Ты знаеш Vam не получается почему то. Все делаю по инструкции, 2 раза пробовал, для чистоты эксперимента. В utf8 переводил с помощью notepad2. Ниче не пойму, набивать базу заново ох как не охота. Че делать то??? Повторил 3-й раз, заработало ??? вроде делал все тоже самое, х.з. че такое, фух я рад :) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 ноября, 2007 Автор Жалоба Share Опубликовано 27 ноября, 2007 Ну, хорошо, что всё хорошо :) Ссылка на сообщение Поделиться на другие сайты
alexandrl 0 Опубликовано 19 марта, 2010 Жалоба Share Опубликовано 19 марта, 2010 а как в версии 1.4.0 сменить кодировку на 1251? Ссылка на сообщение Поделиться на другие сайты
alexandrl 0 Опубликовано 19 марта, 2010 Жалоба Share Опубликовано 19 марта, 2010 постоянно приходится выбирать в браузере кодировку, иначе каракули Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения