https://help.superhosting.bg/cyrillic-text-visualization.html
  • bg

Хостинг, Домейни, Cloud, Виртуални сървъри (VPS), Managed VPS, SSL сертификати

В сайта вместо кирилица се визуализират "????????????"

MySQL
кирилица, преконвериране, енкодинг, convert, encoding

Вместо да се визуализира кирилицата на вашия сайт, се визуализират само въпросителни знаци. В phpMyAdmin кирилицата също не се вижда правилно, а се визуализира по подобен начин: Äîáðå äîøëè

Причината затова се дължи на разлика в енкодинга, който се използва в html-a, връзката към базата данни и колацията на базата данни. Решението е да се преконвертира базата данни.

Преконвертиране

За преконвертирането на базата данни може да се използва iconv. Може да се използва и на сървърите за споделен хостинг, ако разполагате със SSH достъп.

info-iconВажно: Преди да направите промени по базата данни, генерирайте архив. По този начин в случай на необходимост, може да бъде възстановена информация от акаунта.

След като се влезе с конзола, командата за преконвертиране е следната:

iconv -c -f utf8 -t latin1 /path/to/file/old.sql -o new.sql

Легенда:

-c – пропуска невалидните знаци при преконвертиране, ако са налични такива

-f - (from) енкодинг

-t - (to) енкодинг

old.sql - името на sql файла, който ще се преконвертира

-o - (output) опция за запис на резултата от преконвертирането във файл

new.sql - името на файла с преконвертираните данни

Базата данни е преконвертирана, но има още няколко действия преди да се импортне базата данни.

Определяне на енкодинга

За да можете да разберете в какъв енкодинг да преконверирате базата данни, най-лесно е да видите какъв енкодинг се използва в html-а. За целта можете да отворите сайта, след което да изберете View -> Page Source или да изберете клавишната комбинация Ctrl+U.

Преконвертиране в windows-1251

Ако в html-a използвате енкодинг windows-1251, то тогава е необходимо да го укажете и в колацията на базата данни.

Можете да отворите файла с текстов редактор.

1. В началото на SQL файла сложете: SET NAMES utf8;
2. Потърсете latin1 и ако има наличен такъв енкодинг го заместете със cp1251. По този начин ще укажете колацията на таблиците и полетата.

Изтрийте съдържанието на базата данни и импортнете преконвертирания файл. При правилно изпълнение на описаните по-горе стъпки, кирилицата на сайта би трябвало да се визуализира коректно.

Преконвертиране в UTF-8

Ако в html-a използвате енкодинг UTF-8, то тогава е необходимо да го укажете и в колацията на базата данни. При отваряне на файла в текстов редактор, уверете се, че използвате utf-8 енкодинг.

1. В началото на SQL файла сложете: SET NAMES utf8;
2. Потърсете latin1 и ако има наличен такъв енкодинг го заместете с utf8. По този начин ще укажете колацията на таблиците и полетата.
Изтрийте съдържанието на базата данни и импортнете преконвертирания файл.

Указване на енкодинг на връзката на приложенията с базата данни

На сървърите за споделен хостинг на СуперХостинг.БГ е зададена настройка по подразбиране за връзка на приложенията с базата данни да се използва енкодинг cp1251. В случая ще е необходимо да укажете енкодинг UTF-8 за връзка на приложенията. Най-често това става с добавяне на следния ред, веднага след връзката на приложението с базата данни (mysql_connect):

@mysql_query("SET NAMES 'utf8'");

При правилно изпълнение на описаните по-горе стъпки, кирилицата на сайта би трябвало да се визуализира коректно.

В случай, че използвате хостинг от СуперХостинг.БГ и срещнете затруднение с преконвертирането на база данни и/или имате проблем с визуализацията на вашия сайт, свържете с екипа по техническа поддръжка.

500px270px
SuperHosting.BG

Коментари

Все още няма коментари

Уведоми ме при
avatar
Всички права запазени © 2005-2017 , www.superhosting.bg