За последние 24 часа нас посетили 17977 программистов и 1582 робота. Сейчас ищут 1395 программистов ...

jCart- магазин карячет русский текст, проблема с выводом по

Тема в разделе "JavaScript и AJAX", создана пользователем nusweb, 12 фев 2013.

  1. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Добрый день столкнулся с такой проблемой (
    есть скрипт магазина http://conceptlogic.com/jcart/
    у меня с ним проблем-ка не могу вывести русский текст корректно
    сечас выводит так: РЅРѕСЃРєРё
    Код (Text):
    1.  
    2. header('Content-type: text/html; charset="windows-1251"',true);
    3.  setlocale(LC_ALL, 'ru_RU');
    4.  
    5. include_once('config.php');
    6. if (!$config['currencyCode']) $config['currencyCode']                     = 'USD';
    7. ...
    8.  
    9. if ( $_GET['ajax'] == 'true') {
    10.     header('Content-type: application/json; charset=utf-8');
    11.     echo  iconv('UTF-8', 'windows-1251', json_encode($config));
    12. }
    оригинальный код выглядит так
    Код (Text):
    1.  
    2. if ($_GET['ajax'] == 'true') {
    3.     header('Content-type: application/json; charset=utf-8');
    4.     echo json_encode($config);
    5. }
    как я понимаю проблема у меня только с этим блоком...
    Я по разному побывал вывести если выводит русский текст то добавляется только один товар(
    новый перебивает старый при добавления позиций в меню
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Непостоянство заголовков вижу я. Мой юный падаван! Что заставляет вас писать то так, то этак?
     
  3. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Хочется получить приятный результат, такого я не получил( и яву знаю ... пипец как ))
    Почему по разному? потому что читаешь проверяешь, читаешь проверяешь, читаешь проверяешь, читаешь проверяешь

    Есть идей как вести нормальное русло этот дивайс?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    смотри заголовки -- почему так написано?!! ты понимаешь, что такое "заголовки" и для чего они? )))
     
  5. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    общение между сервером и браузером
    Код (Text):
    1.  
    2. header('Content-type: text/html; charset="windows-1251"',true);
    3.  setlocale(LC_ALL, 'ru_RU');
    ajax по умолчанию работает по утф-8 а русская (кирилица) работает по вин-1251.
    Если я не ошибаюсь я сделал подмену кодировок, но на сколько корректно не знаю :(
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Ты же видишь результат. Не понимаю зачем спорить с реальностью.
     
  7. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    У меня FAR достал( кодировку документа менять стал... пока не гуглил че за ...
    но кодировка документа правильная через дренвейр делаю хоть и не удобно так(
    По этой причине у меня не понятки(( до этого я вывел но Far мне помог с кодировкой и сейчас боюсь юзать его чтоб он снова кодировку мне не перелопатил сам(
    Хотя есть подозрение что где то валяется файлик с утф8 кодировкой(

    Добавлено спустя 4 минуты 13 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    Предлагаете забить на данный скрипт?
    вот рабочий от рус. авторов http://jcart.info/ магазин тот же
    но по коду что то нового я не нашол, и он у меня не работает корректно. Именно иза кодировки документа лапатит все по новой запарился(
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Предлагаю забить на программирование. Иди работать на радио, ящитаю!
     
  9. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    это все ровно что сказать купи баян, зачем пох.. купи баян
    зачем тупо флудить ? могли уже просто промолчать...
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Я же тебе первым сообщением сказал в чем проблема. Ты упорно закрываешь на это глаза, о чем это говорит? По моему очевидно. У тебя всегда будет виноват кто-то: автор программы, far, девочка из 8-б, кто угодно. На самом деле ты боишься приложить усилия и разобраться.
    Хочешь поговорить об этом?

    Добавлено спустя 9 минут 53 секунды:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    Объясняю на пальцах. Простой эксперимент:
    - запусти FAR, создай новый файл по Shift+F4, включи кодировку Windows-1251 (по F8)
    - скопируй свой текст: РЅРѕСЃРєРё и вставь его в редакторе FAR
    - не выходя из редактора переключи кодировку на UTF-8.

    Увидел слово? Что это значит: браузер считает, что страница в 1251, тогда как на самом деле текст в utf-8.
    Откуда он взялся -- я без понятия. И ты тоже. Потому что ты своими ебанутыми конвертациями и мнимым переключением кодировки ты только усложняешь задачу, а надо упрощать.
     
  11. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    ООО я походу идиот )) все файлы находятся в кодировке винт 1251 и это я ПЕРВЫМ ДЕЛОМ ПРОВЕРИЛ
    и как пользоваться фаром не стоит учить, просто внимательные надо читать!
    скрипты аякс работают с кодировкой утф-8 и если у тебя будет кодировка документа вин ему будет пох...
    я скинул скрипт попросил помочь корректно вывести класс
    объясните artoodetoo я спрашивал почему они вылазят или просил помочь с крип том. Зачем и к чему этот срач? Вам нравиться унизить когото или показать какой я умный а вы все ТУПЫЕ. Некрасиво....

    Добавлено спустя 20 минут 47 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    ага только маленькая поправочка, с начало надо создать UTF-8 скопировать текст сохранить и перевести Windows-1251 тогда получиться текст))) а как вы говорите другие просто карабки выведет

    Приставь идиот сумел вывести слово и это было сказано в первом сообщений только проблема в том крутиться одна сессия и когда добавляешь товар он его перебивает, и об-этом тоже было сказано выше )))

    Страно такие как ВЫ не обозвали школьником ))) я долго ждал от Вас этого, Вы меня подвели( Хд

    Попробуем все сначала или дальше агриться будем?
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Да, попробуй всё сначала.

    Добавлено спустя 1 минуту 35 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    да нет, я описал буквально то что сделал, чистая практика. сопротивляйся реальности дальше )))
     
  13. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Код (Text):
    1.  
    2. $f =  json_encode($config);
    3. $f = iconv('UTF-8', 'windows-1251', $_GET['f']);
    Так я вывел русский текст но при добавлений нового товара он прибиваться новым добавленным (
    отправляться 100% кириллица, а вот вывести вызывает у меня проблему(
    если надо выложу сам скрипт json_encode
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    а что мешает использовать utf-8 всегда и везде, без шаманства?
     
  15. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    ajax имет такое противное свойство менять кодировку текста под утф-8(
    по этой причине у меня текст так выводит, моя задача из утф-8 перевести на винт 1251
    меняется текст в самом уже движке где добавляется товар, если вывести так как есть получиться текст в утф-8 на вин-1251 странице
    Вы правильно заметили что корячет вывод класса как корекно вывести или переписать самом движке чето не хватает ума...

    Добавлено спустя 7 минут 57 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    Код (Text):
    1.  
    2.     private function add_item($id, $name, $price, $qty = 1, $url) {
    3.  
    4.         $validPrice = false;
    5.         $validQty = false;
    6.  
    7.         // Verify the price is numeric
    8.         if (is_numeric($price)) {
    9.             $validPrice = true;
    10.         }
    11.                 if ($this->config['encoding'] == 'windows-1251')
    12.         {
    13.             $id = iconv('utf-8', 'windows-1251', $id);
    14.             $name = iconv('utf-8', 'windows-1251', $name);
    15.             $url = iconv('utf-8', 'windows-1251', $url);
    16.             $size = iconv('utf-8', 'windows-1251', $size);
    17.             $color = iconv('utf-8', 'windows-1251', $color);
    18.             $param = iconv('utf-8', 'windows-1251', $param);
    19.         }
    20.  
    21.         // If decimal quantities are enabled, verify the quantity is a positive float
    22.         if ($this->config['decimalQtys'] === true && filter_var($qty, FILTER_VALIDATE_FLOAT) && $qty > 0) {
    23.             $validQty = true;
    24.         }
    25.         // By default, verify the quantity is a positive integer
    26.         elseif (filter_var($qty, FILTER_VALIDATE_INT) && $qty > 0) {
    27.             $validQty = true;
    28.         }
    29.  
    30.         // Add the item
    31.         if ($validPrice !== false && $validQty !== false) {
    32.  
    33.             // If the item is already in the cart, increase its quantity
    34.             if($this->qtys[$id] > 0) {
    35.                 $this->qtys[$id] += $qty;
    36.                 $this->update_subtotal();
    37.             }
    38.             // This is a new item
    39.             else {
    40.                 $this->items[]     = $id;
    41.                 $this->names[$id]  = $name;
    42.                 $this->prices[$id] = $price;
    43.                 $this->qtys[$id]   = $qty;
    44.                 $this->urls[$id]   = $url;
    45.             }
    46.             $this->update_subtotal();
    47.             return true;
    48.         }
    49.         elseif ($validPrice !== true) {
    50.             $errorType = 'price';
    51.             return $errorType;
    52.         }
    53.         elseif ($validQty !== true) {
    54.             $errorType = 'qty';
    55.             return $errorType;
    56.         }
    57.     }
    ах да забыл я этот файл пдправил
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Ладно, я не понимаю кому нужен 1251 в XXI веке, но пускай!
    Не буду качать и портить чужой движок, сделаю свой маленький пример.
    json_encode(), насколько я вижу, обламывается с русским текстом в виндовой кодировке. Ему на вход надо подавать utf-8. Вот я и набросал пример, в котором само тело страницы в windows-1251, а config.php содержит данные в utf-8 -- я эти данные никак НЕ iconv-ертирую, а отправляю как есть.

    index.php
    Код (PHP):
    1. <?php
    2. /* charset=windows-1251 */
    3.  
    4. if (isset($_GET['ajax']) && ($_GET['ajax'] == 'true')) {
    5.    header('Content-type: application/json; charset=utf-8');
    6.    echo json_encode(require('./config.php'));
    7.    die(); 
    8. }
    9.  
    10. header('Content-type: text/html; charset="windows-1251"',true);
    11.  
    12. ?>
    13. <!DOCTYPE HTML>
    14. <head>
    15. <meta charset="windows-1251">
    16. <script type="text/javascript" language="JavaScript" src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
    17. <script type="text/javascript" language="JavaScript">
    18.   $(function() {
    19.     var content = $('#content');  
    20.     $.ajax({
    21.         url: 'index.php?ajax=true',   
    22.         dataType : "json",                     
    23.         success: function (data, textStatus) { 
    24.             $.each(data, function(i, val) {    
    25.                 content.append('<p>'+val+'</p>');
    26.             });
    27.         }
    28.     });
    29.   });
    30. </script>
    31. </head>
    32. <body>
    33. <div id="content">
    34.     <p>ололо</p>
    35. </div>
    36. </body>
    37. </html>
    config.php
    Код (PHP):
    1. <?php
    2. /* charset=utf-8 */
    3.  
    4. return array(
    5.         'john doe', 
    6.         'пыщпыщ', 
    7.         'рас-рас');
    8.  
    Мой тестовый полигон: Win7 64bit, Apache 2.2, PHP 5.3, Firefox 18.0.2. результат:
    Код (Text):
    1.  
    2.  
    3. ололо
    4.  
    5. john doe
    6.  
    7. пыщпыщ
    8.  
    9. рас-рас
    Что я делаю не так, почему у меня всё работает?
     
  17. nusweb

    nusweb Активный пользователь

    С нами с:
    20 мар 2011
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Россия Тула
    Re: jCart- магазин карячет русский текст, проблема с выводом

    и я с поймал
    и сам якарт в студию
    Код (Text):
    1.  
    2.  
    3. // jCart v1.3
    4. // http://conceptlogic.com/jcart/
    5.  
    6. $(function() {
    7.  
    8.     var JCART = (function() {
    9.  
    10.         // This script sends Ajax requests to config-loader.php and relay.php using the path below
    11.         // We assume these files are in the 'jcart' directory, one level above this script
    12.         // Edit as needed if using a different directory structure
    13.         var path = 'jcart',
    14.             container = $('#jcart'),
    15.             token = $('[name=jcartToken]').val(),
    16.             tip = $('#jcart-tooltip');
    17.  
    18.         var config = (function() {
    19.             var config = null;
    20.             $.ajax({
    21.                 url: path + '/config-loader.php',
    22.                 data: {
    23.                     "ajax": "true"
    24.                 },
    25.                 dataType: 'json',
    26.                 async: false,
    27.                 success: function(response) {
    28.                     config = response;
    29.                 },
    30.                 error: function() {
    31.                     alert('Ajax error: Edit the path in jcart.js to fix.');
    32.                 }
    33.             });
    34.             return config;
    35.         }());
    36.  
    37.         var setup = (function() {
    38.             if(config.tooltip === true) {
    39.                 tip.text(config.text.itemAdded);
    40.    
    41.                 // Tooltip is added to the DOM on mouseenter, but displayed only after a successful Ajax request
    42.                 $('.jcart [type=submit]').mouseenter(
    43.                     function(e) {
    44.                         var x = e.pageY + 25,
    45.                             y = e.pageX + -10;
    46.                         $('body').append(tip);
    47.                         tip.css({top: y + 'px', left: x + 'px'});
    48.                     }
    49.                 )
    50.                 .mousemove(
    51.                     function(e) {
    52.                         var y = e.pageY + 25,
    53.                         x = e.pageX + -10;
    54.                         tip.css({top: y + 'px', left: x + 'px'});
    55.                     }
    56.                 )
    57.                 .mouseleave(
    58.                     function() {
    59.                         tip.hide();
    60.                     }
    61.                 );
    62.             }
    63.  
    64.             // Remove the update and empty buttons since they're only used when javascript is disabled
    65.             $('#jcart-buttons').remove();
    66.  
    67.             // Default settings for Ajax requests
    68.             $.ajaxSetup({
    69.                 type: 'POST',
    70.                 url: path + '/relay.php',
    71.                 success: function(response) {
    72.                     // Refresh the cart display after a successful Ajax request
    73.                     container.html(response);
    74.                     $('#jcart-buttons').remove();
    75.                 },
    76.                 // See: http://www.maheshchari.com/jquery-ajax-error-handling/
    77.                 error: function(x, e) {
    78.                     var s = x.status,
    79.                         m = 'Ajax error: ' ;
    80.                     if (s === 0) {
    81.                         m += 'Check your network connection.';
    82.                     }
    83.                     if (s === 404 || s === 500) {
    84.                         m += s;
    85.                     }
    86.                     if (e === 'parsererror' || e === 'timeout') {
    87.                         m += e;
    88.                     }
    89.                     alert(m);
    90.                 }
    91.             });
    92.         }());
    93.  
    94.         // Check hidden input value
    95.         // Sent via Ajax request to jcart.php which decides whether to display the cart checkout button or the PayPal checkout button based on its value
    96.         // We normally check against request uri but Ajax update sets value to relay.php
    97.  
    98.         // If this is not the checkout the hidden input doesn't exist and no value is set
    99.         var isCheckout = $('#jcart-is-checkout').val();
    100.  
    101.         function add(form) {
    102.             // Input values for use in Ajax post
    103.             var itemQty = form.find('[name=' + config.item.qty + ']'),
    104.                 itemAdd = form.find('[name=' + config.item.add + ']');
    105.  
    106.             // Add the item and refresh cart display
    107.             $.ajax({
    108.                 data: form.serialize() + '&' + config.item.add + '=' + itemAdd.val(),
    109.                 success: function(response) {
    110.  
    111.                     // Momentarily display tooltip over the add-to-cart button
    112.                     if (itemQty.val() > 0 && tip.css('display') === 'none') {
    113.                         tip.fadeIn('100').delay('400').fadeOut('100');
    114.                     }
    115.  
    116.                     container.html(response);
    117.                     $('#jcart-buttons').remove();
    118.                 }
    119.             });
    120.         }
    121.  
    122.         function update(input) {
    123.             // The id of the item to update
    124.             var updateId = input.parent().find('[name="jcartItemId[]"]').val();
    125.  
    126.             // The new quantity
    127.             var newQty = input.val();
    128.  
    129.             // As long as the visitor has entered a quantity
    130.             if (newQty) {
    131.  
    132.                 // Update the cart one second after keyup
    133.                 var updateTimer = window.setTimeout(function() {
    134.  
    135.                     // Update the item and refresh cart display
    136.                     $.ajax({
    137.                         data: {
    138.                             "jcartUpdate": 1, // Only the name in this pair is used in jcart.php, but IE chokes on empty values
    139.                             "itemId": updateId,
    140.                             "itemQty": newQty,
    141.                             "jcartIsCheckout": isCheckout,
    142.                             "jcartToken": token
    143.                         }
    144.                     });
    145.                 }, 1000);
    146.             }
    147.  
    148.             // If the visitor presses another key before the timer has expired, clear the timer and start over
    149.             // If the timer expires before the visitor presses another key, update the item
    150.             input.keydown(function(e){
    151.                 if (e.which !== 9) {
    152.                     window.clearTimeout(updateTimer);
    153.                 }  
    154.             });
    155.         }
    156.  
    157.         function remove(link) {
    158.             // Get the query string of the link that was clicked
    159.             var queryString = link.attr('href');
    160.             queryString = queryString.split('=');
    161.  
    162.             // The id of the item to remove
    163.             var removeId = queryString[1];
    164.  
    165.             // Remove the item and refresh cart display
    166.             $.ajax({
    167.                 type: 'GET',
    168.                 data: {
    169.                     "jcartRemove": removeId,
    170.                     "jcartIsCheckout": isCheckout
    171.                 }
    172.             });
    173.         }
    174.  
    175.         // Add an item to the cart
    176.         $('.jcart').submit(function(e) {
    177.             add($(this));
    178.             e.preventDefault();
    179.         });
    180.  
    181.         // Prevent enter key from submitting the cart
    182.         container.keydown(function(e) {
    183.             if(e.which === 13) {
    184.                 e.preventDefault();
    185.             }
    186.         });
    187.  
    188.         // Update an item in the cart
    189.         container.delegate('[name="jcartItemQty[]"]', 'keyup', function(){
    190.             update($(this));
    191.         });
    192.  
    193.         // Remove an item from the cart
    194.         container.delegate('.jcart-remove', 'click', function(e){
    195.             remove($(this));
    196.             e.preventDefault();
    197.         });
    198.  
    199.     }()); // End JCART namespace
    200.  
    201. }); // End the document ready function
    прошлый раз у меня таже проблема вышла вывести текс то я вывел но ... иду пока покурю подумаю может свежые мысли придут

    (сейчас кириллица работает но только один товар в корзине )

    Добавлено спустя 58 минут 25 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    нашол причину ошибку ajaxa
    Код (Text):
    1.  
    2. //session_unset();
    3. //session_destroy();
    для отладки я добавил ну чтоб сессия сбивал при изменениях, она мне и мозг парила по ходу(
    artoodetoo подскажите если я правильно понял просто что я перед овал по сессий на доходила до обработчика правильно?
    artoodetoo спс вам за помощь
     
  18. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    наздоровье! не уверен, что правильно понял вопрос, но наверное так и есть ))) спать уже хочу.

    удачи!
     
  19. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Re: jCart- магазин карячет русский текст, проблема с выводом

    если на сайте cp1251 а аякс робит по ютф-8, и отправляем мы ему ютф-8, но не хотим переделывать сайт под ютф-8 то придется с помощью js конвертировать в 1251 перед тем, как отдать его

    Добавлено спустя 59 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    :D
     
  20. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    r3l0c, удивишся, но нет, не придется перекодировать )))
    таки я бы советовал ВСЁ делать в utf-8. чтобы не путаться и не тратить время на бестолковые ошибки.
     
  21. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    И правда удивился). -- Страница в 1251, данныйе в ютф-8, браузер не знает что они в ютф-8 и получаются какашки вместо текста, следовательно надо на js полученную инфу конвертировать в 1251 и потом помещать в html.
    А вариант перевести весь сайт в ютф-8 ---это да, это единственное правильное решение). Но судя по сообщениям выше ТС не хочет (хз почему) перевести весь сайт в ютф-8

    Добавлено спустя 3 минуты 57 секунд:
    Re: jCart- магазин карячет русский текст, проблема с выводом по
    Код (PHP):
    1. private function add_item($id, $name, $price, $qty = 1, $url) {
    2.  
    3.       $validPrice = false;
    4.       $validQty = false;
    5.  
    6.       // Verify the price is numeric
    7.       if (is_numeric($price)) {
    8.          $validPrice = true;
    9.       }
    10.             if ($this->config['encoding'] == 'windows-1251')
    11.       {
    12.          $id = iconv('utf-8', 'windows-1251', $id);
    13.          $name = iconv('utf-8', 'windows-1251', $name);
    14.          $url = iconv('utf-8', 'windows-1251', $url);
    15.          $size = iconv('utf-8', 'windows-1251', $size);
    16.          $color = iconv('utf-8', 'windows-1251', $color);
    17.            $param = iconv('utf-8', 'windows-1251', $param);
    18.       }
    Тут колор, сайз и парам не определены, или мне кажется?
     
  22. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Re: jCart- магазин карячет русский текст, проблема с выводом

    а когда браузер (или js, я не вникал) получает правильный заголовок с указанием реальной кодировки, то всё перекодируется на лету как бы само. пример парой постов выше.
    но это так, для эрудиции, а не для жизни.
     
  23. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Хм, спс, не знал)
     
  24. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Еще для эрудиции. Про перекодирование. Топикстартер привел такой фрагмент
    Код (PHP):
    1. iconv('UTF-8', 'windows-1251', json_encode($config)) 
    реально он НИЧЕГО НЕ ДЕЛАЕТ. вот демонстрация:
    Код (PHP):
    1. <?php
    2. /* charset=utf-8 */
    3.  
    4. $array = array(
    5.         'john doe', 
    6.         'пыщпыщ', 
    7.         'рас-рас. этот массив отправлен в utf-8');
    8.  
    9. $json1 = json_encode($array);
    10. $json2 = iconv('UTF-8', 'windows-1251', $json1);
    11.  
    12. echo ($json1 === $json2) ? 'YES' : 'NO';
    13.  
    выведет "YES". внутри текста с джейсоном нет русских букв, там коды вида \u0432\u043b\u0435\u043d, их iconv никак не изменит
     
  25. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Re: jCart- магазин карячет русский текст, проблема с выводом

    Еще раз спасибо), не знал что json_encode настолько жостко пакует в json). Всегда думал, что там просто json вида плаинтекст с экранированием опасных символов).