Русский OsCommerce

Здравствуйте, гость ( Вход | Регистрация )

 
<{A_REPLY}><{A_POST}>
<{CAT_IMG}> Проблемы с кодировкой., Надоели знаки вопроса.
Ztsky
сообщение 11.2.2008, 17:14
Сообщение #1


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 2
Регистрация: 4.2.2008
Пользователь №: 25 540
Откуда:K



Скачял последнюю версию движка.
Русифицировал её тоже, всё как по мануалу, чарсеты поменял в 4 файлах.
Создал базу с дефаултным utf8.
Проинсталил.
Админка частично на руском, но при попытке изменять или добавлять в базу вписываються знаки вопроса.
При принудительном исправлении в базе сохраняеться рус язык, но не отображаеться на сайте кирилицей. Вместо этого одни знаки вопроса.
Чтото не могу вкурить где сабака порылась, кто сталкивался подскажите плз, как сей трабл решаеться в этом движке.
ЗЫ:Поставил под Винду на аналоге Денвера, чарсеты в нём все есть, короче проблема гдето в движке.
Заранее спсб.
 
VaM
сообщение 12.2.2008, 9:47
Сообщение #2


Модератор
Иконка группы

Группа: Группа OSC RU Team
Сообщений: 14 846
Регистрация: 12.5.2002
Из: Ставрополь
Пользователь №: 25



Попробуйте так:
Откройте файл /includes/functions/database.php
Найдите следующий код:
Код
if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
}

Замените его на:
Код
if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
}

mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");


3. Откройте файл /admin/includes/functions/database.php
Найдите следующий код:
Код
if (USE_PCONNECT == 'true') {

$$link = mysql_pconnect($server, $username, $password);

} else {

$$link = mysql_connect($server, $username, $password);

}



Замените его на:
Код
if (USE_PCONNECT == 'true') {

$$link = mysql_pconnect($server, $username, $password);

} else {

$$link = mysql_connect($server, $username, $password);

}


mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
 
Ztsky
сообщение 13.2.2008, 12:20
Сообщение #3


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 2
Регистрация: 4.2.2008
Пользователь №: 25 540
Откуда:K



Спасибо полечило.
rolleyes.gif
Тема закрыта.
 
DRaGSTAR
сообщение 22.9.2009, 18:23
Сообщение #4


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 36
Регистрация: 19.9.2007
Пользователь №: 23 217
Откуда:Kiev



Добрый день! Столкнулся с подобной проблемой. Лекарство указаное в теме решило проблему лиш частично. Теперь при добавлении нового товара название и описание товара в админ. части видны нормально, по русски. В базе данных и на сайте для пользователя уже даже не вопросы, а просто завитушки, крючки и прочее.
Пробывал заменить в предложеных кодах utf8 на utf8 - не помогло.

MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_unicode_ci
В БД в таблицах сопоставление - utf8_general_ci

Как вылечить, что бы были русские буквы, а не иероглифы? Помогите плиз.
 
trigger
сообщение 29.3.2010, 22:40
Сообщение #5


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 1
Регистрация: 2.8.2009
Пользователь №: 44 322



Заменил строки - проблема ушла в небытие =) избыток счастья и радости cool.gif
 
taras
сообщение 30.3.2010, 11:57
Сообщение #6


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 24
Регистрация: 2.2.2010
Пользователь №: 46 316
Откуда:Львов



Цитата(trigger @ 29.3.2010, 23:40) <{POST_SNAPBACK}>
Заменил строки - проблема ушла в небытие =) избыток счастья и радости cool.gif

замена строк ничего не дала... появились знаки ????? в английском меню....
в русском языке в разделе CONFIGURATION тоже знаки ????, остальные разделы обозначаются так:
BOX_HEADING_CATALOG
BOX_HEADING_MODULES
BOX_HEADING_CUSTOMERS
BOX_HEADING_LOCATION_AND_TAXES

В чем дело???
 
a_berezin
сообщение 30.3.2010, 12:50
Сообщение #7


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Честно говоря, очень давно не видел проблем с локализацией. Вы нормальные файлы взяли? Например вот здесь лежит вариант от Valerka - http://addons.oscommerce.com/info/5636
Цитата(taras @ 30.3.2010, 13:57) <{POST_SNAPBACK}>
замена строк ничего не дала... появились знаки ????? в английском меню....

Значит в английское меню попали не английские слова smile.gif

Цитата(taras @ 30.3.2010, 13:57) <{POST_SNAPBACK}>
в русском языке в разделе CONFIGURATION тоже знаки ????,

Это хранится в базе. Либо загрузили не так, либо параметры таблицы не те, либо коннект к базе не тот, либо ...

Цитата(taras @ 30.3.2010, 13:57) <{POST_SNAPBACK}>
остальные разделы обозначаются так:
BOX_HEADING_CATALOG
BOX_HEADING_MODULES
BOX_HEADING_CUSTOMERS
BOX_HEADING_LOCATION_AND_TAXES

В чем дело???

Не определены соответствующие языковые константы.

Очень странная локализация.

Был же вроде где-то готовый чистый локализованный osCommerce.
 
taras
сообщение 31.3.2010, 21:20
Сообщение #8


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 24
Регистрация: 2.2.2010
Пользователь №: 46 316
Откуда:Львов



Цитата(a_berezin @ 30.3.2010, 13:50) <{POST_SNAPBACK}>
Честно говоря, очень давно не видел проблем с локализацией. Вы нормальные файлы взяли? Например вот здесь лежит вариант от Valerka - http://addons.oscommerce.com/info/5636

Значит в английское меню попали не английские слова smile.gif
Это хранится в базе. Либо загрузили не так, либо параметры таблицы не те, либо коннект к базе не тот, либо ...
Не определены соответствующие языковые константы.

Очень странная локализация.

Был же вроде где-то готовый чистый локализованный osCommerce.

Андрей, попробовал ваши советы...
Ну вот и появились проблеммы с локализацией... Переставил файлы от Valerka. Результат тот же, вот скрин админки... Я говорю о русском языке...

Ребята подскажите выход...
Прикрепленные файлы
Прикрепленный файл  skrin.jpg ( 71,04 килобайт ) Кол-во скачиваний: 85
 
 
S_developer
сообщение 1.4.2010, 3:48
Сообщение #9


Профи
Иконка группы

Группа: Kлуб OSC RU
Сообщений: 1 552
Регистрация: 2.11.2006
Пользователь №: 16 249
Откуда: Украина, Киев



taras
Перезалей базу напрямую через phpmyadmin, с учетом кодировки и сопоставления кодировок.
 
taras
сообщение 1.4.2010, 9:45
Сообщение #10


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 24
Регистрация: 2.2.2010
Пользователь №: 46 316
Откуда:Львов



Цитата(S_developer @ 1.4.2010, 4:48) <{POST_SNAPBACK}>
taras
Перезалей базу напрямую через phpmyadmin, с учетом кодировки и сопоставления кодировок.

Сергей, спасибо за совет...
попробовал перезалить, но эффекта нету...
подскажи, пожалуйста, чуть подробнее как это провернуть... может я не так делаю (скорее всего)

[font="Arial Black"][/font]
Проблемма снята... Вручную перевел в phpMyAdmin...
Большое спасибо всем за помощь
 
Minou
сообщение 12.4.2010, 1:23
Сообщение #11


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 8
Регистрация: 12.4.2010
Пользователь №: 46 934
Откуда:Sweden



То ли я в ночи плохо вижу, то ли пользователю по имени DRaGSTAR никто не ответил. unsure.gif

Повторю вопрос, так как мучаюсь с точно такой же проблемой.
кодировка ДБ: UTF-8 Unicode, сопоставление соединения с MySQL: utf8_general_ ci.

Текст правильно отображается и в самом магазине, и в админке, но в ДБ текст выглядит следующим образом: KÏÍÐÌÅËÔ ÄÌÑ ÍÁÌØÞÉËÏ×

Можно ли исправить? Или надо переустанавливать osc, или даже переустановка не поможет?
 
a_berezin
сообщение 12.4.2010, 7:48
Сообщение #12


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



А что исправлять? Всё ведь работает как заказано: "кодировка ДБ: UTF-8 Unicode, сопоставление соединения с MySQL: utf8_general_ ci".
 
Minou
сообщение 12.4.2010, 14:35
Сообщение #13


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 8
Регистрация: 12.4.2010
Пользователь №: 46 934
Откуда:Sweden



Ну я так и думала, что не надо теребить, раз все и так работает.

Просто я как-то упустила следующий момент: где-то при инсталяции указываешь кодировку датабазы или это от меня не зависит (а зависит, например, от хостера)? Потому как склонна к перфекционизму и в идеале хотела бы, чтобы везде все правильно отображалось (могу и заново переустановить osc, если надо).
 
a_berezin
сообщение 12.4.2010, 15:21
Сообщение #14


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Мне кажется хостер уже давно не создаёт базы данных для пользователя.
Переустановка ни к чему не приведёт.
Чтобы всё было идеально, нужно работать в одной кодировке - utf-8 или utf8. Так что нужно либо базу конвертировать в utf8 (но могут возникнуть проблемы с другими языками, если они есть), либо osCommerce перевести под utf-8 (что чревато не только перекодировкой языковых файлов, но и заменой строковых функций на мульти-байтовые, но зато даёт полную мульти-языковую свободу), либо оставить как есть (но я бы не стал этого делать).
 
Minou
сообщение 12.4.2010, 17:50
Сообщение #15


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 8
Регистрация: 12.4.2010
Пользователь №: 46 934
Откуда:Sweden



Спасибо за ответ. Пошла выяснять что значит "заменой строковых функций на мульти-байтовые" на языке, понятном для непосвященных. blink.gif

Стесняюсь спросить, а Вы бы, например, смогли "osCommerce перевести под utf-8"?

Цитата(a_berezin @ 12.4.2010, 15:21) <{POST_SNAPBACK}>
Мне кажется хостер уже давно не создаёт базы данных для пользователя.

Не создает, но просто я не помню, чтобы выбирала кодировку для ДБ, поэтому предположила, может ДБ по умолчанию создается с кодировкой UTF8 (типа, так хостер решил)


PS: вообще-то хотела сначала сделать каждый язык на поддомене .../en, .../ru, .../se. В этом случае можно было бы создать для каждого языка свою ДБ. Но хостер дает только одну ДБ на домен, к сожалению.
 
a_berezin
сообщение 12.4.2010, 19:12
Сообщение #16


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Цитата(Minou @ 12.4.2010, 19:50) <{POST_SNAPBACK}>
Спасибо за ответ. Пошла выяснять что значит "заменой строковых функций на мульти-байтовые" на языке, понятном для непосвященных. blink.gif

В utf-8 для хранения симоволов выше 127 используется не один, а несколько байтов. Поэтому традиционные строковые функции типа substr или strlen работают неправильно. Для этого придуманы мультибайтовые - http://ru2.php.net/manual/en/book.mbstring.php
Только зачем это Вам, "непосвященным"?

Цитата(Minou @ 12.4.2010, 19:50) <{POST_SNAPBACK}>
Стесняюсь спросить, а Вы бы, например, смогли "osCommerce перевести под utf-8"?

Конечно. И не только я - здесь таких много.

Цитата(Minou @ 12.4.2010, 19:50) <{POST_SNAPBACK}>
Не создает, но просто я не помню, чтобы выбирала кодировку для ДБ, поэтому предположила, может ДБ по умолчанию создается с кодировкой UTF8 (типа, так хостер решил)

Да, сегодня стандартная кодировка обычно utf-8. Рассчитано на современные скрипты wink.gif Раньше была latin1_swedish_ci.

Цитата(Minou @ 12.4.2010, 19:50) <{POST_SNAPBACK}>
PS: вообще-то хотела сначала сделать каждый язык на поддомене .../en, .../ru, .../se. В этом случае можно было бы создать для каждого языка свою ДБ. Но хостер дает только одну ДБ на домен, к сожалению.

А смысл в мультиязычном скрипте создавать под каждый язык свой экземпляр магазина с отдельной базой? Лучше на одной. Хотя при этом не стоит забывать, что скрипт не полностью мультиязычный - страны, валюта, регионы и т.д. - они не мультиязычны. Но если работать в utf-8, то можно попытаться "увернуться", используя, например, для каждой страны написание на соответствующем языке.
 
Mirra24
сообщение 17.8.2010, 13:46
Сообщение #17


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 1
Регистрация: 17.8.2010
Пользователь №: 47 410
Откуда:Россия



Помогите разобраться с проблемой, ничто не помогает unsure.gif ...
Перенесла магазин на новый хостинг и вместо русских букв стали отображаться ?????????????
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci
Все предложеные в теме варианты лечения перепробовала, Google тоже не помог sad.gif ... Единственный сдвиг в лучшую сторону увидела: в браузере Mozilla все стало отображаться нормально, а вот Опера с IE показывают только ������� blink.gif
Что делать уже ума не приложу unsure.gif
 
SAHAR
сообщение 20.10.2011, 8:31
Сообщение #18


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 7
Регистрация: 20.10.2011
Пользователь №: 49 576
Откуда:Ukraine



Зравствуйте. Первеодил сам, (2.3.1) скопировав папку с английским переименовав ее в русский, и в каждом дифайне написал нужный русский текст, вроди бы все в нужной кодировке... но всервно есть абра-кадабры. Больше всего меня огорчает абра-кадабра в письмах, которые получает пользователь после оформления заказа. аналогичная ситуация когда устанавливал русификацию без замены файлов в папке functions.
Цитата
------------------------------------------------------
����� ������: 3
������ �������: http://сайт/account_history_info.php?order_id=3
���� �������: четверг 20 октября, 2011

�����
------------------------------------------------------
1 x Мышка (1) = 450грн.
------------------------------------------------------
Итого: 450грн.
Куръером (Куръером по Киеву): 15грн.
Всего: 465грн.


где искать "грабли"? определить в какой же кодировке этот текст я так и не смог.
 
a_berezin
сообщение 20.10.2011, 9:04
Сообщение #19


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Цитата(SAHAR @ 20.10.2011, 10:31) <{POST_SNAPBACK}>
вроди бы все в нужной кодировке... но всервно есть абра-кадабры.

Судя по всему языковой файл не в той кодировке.
 
SAHAR
сообщение 20.10.2011, 9:37
Сообщение #20


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 7
Регистрация: 20.10.2011
Пользователь №: 49 576
Откуда:Ukraine



Цитата(a_berezin @ 20.10.2011, 10:04) <{POST_SNAPBACK}>
Судя по всему языковой файл не в той кодировке.

Перепроверю все файлы. обнаружился еще косячек комменты к товарам тоже с проблемами в кодировкой. возможно это как-то связано?
Цитата
Недавно покупал этот чудо чехол, качеств�-� оличное, ожидал именно такой чехол!
 
a_berezin
сообщение 20.10.2011, 10:28
Сообщение #21


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Цитата(SAHAR @ 20.10.2011, 11:37) <{POST_SNAPBACK}>
обнаружился еще косячек комменты к товарам тоже с проблемами в кодировкой. возможно это как-то связано?

Для работы со строками utf-8 нужно использовать мультибайтовые строковые функции. Решение проблемы - http://oscomm.biz/index.php?showtopic=1833...mp;#entry115130

Цитата(a_berezin @ 13.5.2011, 6:57) <{POST_SNAPBACK}>
Отзывы в боксе?
В файле includes/functions/general.php замените строки 153-154
Код
    for ($i=0, $n=strlen($string); $i<$n; $i++) {
      $char = substr($string, $i, 1);

на
Код
    for ($i=0, $n=mb_strlen($string); $i<$n; $i++) {
      $char = mb_substr($string, $i, 1);
 
SAHAR
сообщение 20.10.2011, 11:36
Сообщение #22


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 7
Регистрация: 20.10.2011
Пользователь №: 49 576
Откуда:Ukraine



Подправил комментарии. все работает. Просто забыл в админке сделать тоже.
Проблема с почтой осталась. Пересмотрел кодировку на всех страничках везде одинакова УТФ-8 (без БОМ).
Уже после того как пересохранил, на всякий случай, в нужной кодировке все файлы, сделал 2 заказа первый на русском, второй на английском.
вот что получил:
Цитата
����� ������: 5
������ �������: http://сайт/account_history_info.php?order_id=5
���� �������: четверг 20 октября, 2011

Цитата
Order Number: 6
Detailed Invoice: http://сайт/account_history_info.php?order_id=6
Date Ordered: Thursday 20 October, 2011


З.Ы. a_berezin, на демо магазине отсутствует перевод кнопки "удалить". и там не совсем кнопка, а ссылочка. в своем магазине сделал замену (там был просто текст remove, окруженный тегами форматирования) на текст REMOVE_BUTTON_TEXT. после чего в файле языка сделал замену REMOVE_BUTTON_TEXT на полностью код вида кнопки. не силен в ПХП нельзя ли было заменить как-то иначе?
чтобы код вида кнопки оставался в исходнике движка, а в языковом файле был только текст "удалить".
пытался сделать следующим образом:
Код
'теги форматирования кнопки'+REMOVE_BUTTON_TEXT+'закрытие тегов которые не закрыты'

не получилось.
 
SAHAR
сообщение 20.10.2011, 11:50
Сообщение #23


Новичок
Иконка группы

Группа: Пользователи
Сообщений: 7
Регистрация: 20.10.2011
Пользователь №: 49 576
Откуда:Ukraine



Прошу прощения за такое количество постов... все-таки - кодировка файла, какой-то заговоренный файл. несколько раз открывал все файлы с того каталога...
checkout_process.php
Вопрос кнопки удаления с корзины может оказаться с этого раздела но не совсем этой темы.
 
a_berezin
сообщение 20.10.2011, 15:23
Сообщение #24


Профи
Иконка группы

Группа: Пользователи
Сообщений: 9 694
Регистрация: 7.5.2004
Из: Санкт-Петербург
Пользователь №: 1 538
Откуда:Россия, Санкт-Петербург



Цитата(SAHAR @ 20.10.2011, 13:36) <{POST_SNAPBACK}>
З.Ы. a_berezin, на демо магазине отсутствует перевод кнопки "удалить". и там не совсем кнопка, а ссылочка. в своем магазине сделал замену (там был просто текст remove, окруженный тегами форматирования) на текст REMOVE_BUTTON_TEXT. после чего в файле языка сделал замену REMOVE_BUTTON_TEXT на полностью код вида кнопки. не силен в ПХП нельзя ли было заменить как-то иначе?
чтобы код вида кнопки оставался в исходнике движка, а в языковом файле был только текст "удалить".
пытался сделать следующим образом:
Код
'теги форматирования кнопки'+REMOVE_BUTTON_TEXT+'закрытие тегов которые не закрыты'

не получилось.

Там всё сложнее - http://oscomm.biz/index.php?showtopic=1833...st&p=116575
 

<{A_REPLY}><{A_POST}>

 



RSS Текстовая версия Сейчас: 21.4.2018, 0:03