Jump to content
  • 0

Разная кодировка в одном слове


yegorich
 Share

Question

9 answers to this question

Recommended Posts

  • 0

Судя по всему, кодировка многобайтная (99,9% — utf-8), а обрезка слов с подстановкой «...» делается серверным скриптом (типа php-шной  substr) не по символам, а по байтам. Получается, что последний символ слова бьется и от него остается огрызок, не имеющий смысла в utf-8.

 

Надо посмотреть, чем сделана обрезка, и переделать на что-то совместимое с многобайтной кодировкой (напр. mb_substr), а то и вовсе убрать и сделать text-overflow: ellipsis в CSS.

Link to comment
Share on other sites

  • 0

Спасибо всем за ответы. Эта проблема возникает только на локальном сервере (OpenServer), на удаленном все нормально. Кодировка charset=utf-8 прописана и там и там, но многие файлы сохранены в windows-1251. Значения переменной этого меню в базе данных - utf-8. Бьется не последний символ в слове, а окончание после 7 знака. Причем все остальные слова на странице отображаются нормально. Буду очень благодарен за помощь. Какую еще информацию предоставить?

Link to comment
Share on other sites

  • 0

SelenIT прав скорее всего. Выясни как именно происходит обрезка слова. Если на стороне сервера с помошью PHP, то необходимо применять вместо substr mb_substr. Возможно, поможет принудительно указать кодировку в mb_substr: mb_substr($someval, 0, 7, 'UTF-8');

Edited by boilroom
Link to comment
Share on other sites

  • 0

Спасибо. А где это может быть прописано (substr), в каком файле? Извините, просто я больше занимаюсь версткой (в php ни в зуб ногой), а тут такая проблема.

 

Этого никто тебе вот так, телепатически, не скажет. Все зависит от того, как вообще реализована серверная часть сайта. Может, там не PHP вообще используется. Вообще можешь, конечно, сделать поиск substr по всем файлам сайта и поменять на то, что нужно. Очень советую сделать перед этим бэкап ;) А вообще, если совсем не разбираешься в серверной части, то лучше не лезь туда, а отдай кому-нибудь, кто понимает.

Link to comment
Share on other sites

  • 0

Попробуй в html файл вынести. все ясно станет. - режет php или сервак

 

А если через инструменты разработчика посмотреть - что кажет

Edited by Николя223
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Лелик
      Источник для импорта сменил кодировку с utf-8 на  windows-1251. Всвязи с этим не выполняются циклы импорта, ошибка 1064 и кириллица выводится в квадратах. Также вверху шапки сайта при загрузке страницы админки с импортом и при оформлении заказа (на другой линии) [Unknown: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/p10824/xn--80agbgp3aafdnsm0c.xn--p1ai/system/library/partner.php on line 44 ]  Нужно адаптировать код по примеру [$q = 'select id, fio from `users`';
      $res = mysql_query($q);
      while (($row = mysql_fetch_assoc($res)) !== false) {
      // Преобразуем fio из utf-8/latin1 в windows-1251
      $s = iconv('utf-8', 'windows-1251', $row['fio']);
      // Преобразуем строку из однобайтной кодировки обратно в utf-8, выдав её за windows-1251
      $s = iconv('windows-1251', 'utf-8', $s);
      // Сохраняем назад в БД
      $q = 'update `users` set fio = "'.addslashes($s).'" where id = '.$row['id'];
      mysql_query($q);
      }]. Файл для работы прилагаю
      partner.php
    • By Лелик
      Опенкарт. Возник конфликт utf8  и windows1251 при импорте товаров и вообще при открытии сайта всвязи со сменой сайта-донора. Когда работало - мой сайт и донор имели кодировку utf8, сейчас кодировки различаются и скрипт не выполняется в строках
       $tmpFile = fopen ( $strqw, "r" ) ;
                  fclose ($tmpFile); .
      Весь скрипт: //register partner click
              if (!isset($_SESSION["clickreg"])){
                  $strqw="http://77.246.157.182/scripts/tp.php?a_aid=".$this->config->get('config_partner')."&a_bid=50256f5d&data1=".$this->config->get('config_prtype')."&data2=&data3=&referrer=".$this->config->get('config_url');
                  $tmpFile = fopen ( $strqw, "r" ) ;
                  fclose ($tmpFile); 
                  $_SESSION["clickreg"]=1;
                 }
              $this->render();
      Прилагаю два скрина в файле
      Что делать и где именно?

    • By Anymaxis
      Очевидна огромная разница между 2 байтами на символ кириллицы и одним. В моей деятельности существуют системы где 1 000 000+ сообщений кириллицей это обыденность. Под этот массив данных пишутся обработчики, парсеры и тд. Я не специалист, но наверно скорость работы будет отличаться.
      В сети windows-1251 характеризуется всегда догматично — устарелая фигня, юзай utf-8.
      Всегда ли windows-1251 это плохо? И почему?
    • By ErUnDAK
      Загрузил сайт на hostinger, кодировка в notebook++ поставил utf-8, но стоит загрузить мне сайт на хост, все русские символы превращаются в кириллицу. Как исправить это? В интернете смотрел, там в файле ".htaccess" что-то нужно добавить, но у меня в это файле имеется данный текст, и я просто без идей что мне делать.
      P.S - файловый менеджер: net2ftp

    • By ErUnDAK
      Загрузил сайт на hostinger, кодировка в notebook++ поставил utf-8, но стоит загрузить мне сайт на хост, все русские символы превращаются в кириллицу. Как исправить это? В интернете смотрел, там в файле ".htaccess" что-то нужно добавить, но у меня в это файле имеется данный текст, и я просто без идей что мне делать.
      P.S - файловый менеджер: net2ftp

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy