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
    MySQL
  • MySQL - Импорт на данни от текстов файл, с SQL заявка
    В случай че е необходимо да направите импорт на данни от текстов файл (.txt, .csv...), в таблица в базата данни, ще е необходимо да ползвате LOAD DATA LOCAL INFILE, вместо... »
  • Какво е INFORMATION_SCHEMA?
    INFORMATION_SCHEMA е виртуална информационна база данни състояща се от виртуални таблици (Views). Информацията се представя в табличен вид, но тази виртуална база данни не съдържа реални таблици. Въпреки това информацията... »
  • Отдалечен достъп до база данни през ODBC
    Преди да е възможно да се извърши свързването през ODBC драйвър с MySQL сървъра е необходимо да се активира отдалечения достъп до базите данни в хостинг акаунта. За връзка с MySQL... »
  • Поддръжка на MySQLi
    Разширението MySQLi (MySQL Improved) представлява драйвер за MySQL. Използва се при скриптове на PHP за връзка към MySQL бази данни. MySQLi е подобрена версия на по-стария PHP MySQL драйвер. MySQLi има... »
  • Импорт на база данни със Stored Procedure
    При импорт на база данни, ако базата съдържа една или повече сторнати процедури (stored procedure), е възможно да се появи съобщение You need Super Privileges for this operation Причината за появата на... »
Всички права запазени © 2005-2017 , www.superhosting.bg