Ако сте превключили уеб хост или сте променили базата данни за вашия блог WordPress, може да срещнете проблем, при който чуждият знак не се показва правилно на вашия сайт. Вместо чуждестранни символи, на него ще видите много въпросителни (???). В тази статия ще ви покажем как да решите този проблем и да покажете правилния език, без да губите данни.

Какво е кодиране на знаци?

Преди да разгледаме причините и решенията на този проблем, трябва да сме ясни за кодирането на знаците. Думите и изреченията на който и да е език са съставени от знаци. Тези знаци са групирани в набори от знаци. Всеки знак се съхранява в компютърната памет, като се използва двоичен код. Използвайки този код, компютърът може да декодира действителния знак. Този двоичен код се нарича кодиране на знаци.

Различните езици използват различни кодове, за да се отнасят до различни знаци. Същият код в два езика може да означава напълно различни знаци. Определя се кое кодиране на знаци се използва от компютъра.

Може да видите някои от символите на W3Schools, които се използват в Интернет. Насочете към Уикипедия за пълния набор от знаци.

Видя ли ??? във вашия WordPress блог?

Възможно е да има няколко причини, които да доведат до показване на грешни знаци. На първо място, трябва да се уверите, че използвате същия набор от знаци във вашия wp-config.php файл. Потърсете следния ред и се уверете, че не е коментиран:

 define ('DB_CHARSET', 'utf8'); 

Второ, трябва да проверите дали темата ви използва набор от знаци, зададен в wp-config.php файла. Потърсете следния ред във вашия HTML:

И накрая, трябва да проверите дали съдържанието на базата данни се съхранява със същата кодировка на набор от символи, която използвате във файла wp-config.php и HTML. Ако използвате phpMyAdmin, за да управлявате базата данни, ще можете да видите текущото съпоставяне на сървъра в "Общи настройки".

Промяната на набор от знаци от пълната база данни на WordPress не е лесна задача и трябва да се направи с много грижи. Ето стъпките за конвертиране на база данни в избрания от вас набор от знаци.

1. На първо място, трябва да проверим текущия набор от символи на базата данни. Ето SQL заявката за проверка:

 ПОКАЖЕТЕ ПРОМЕНЕНИ КАТО "character_set_database"; 

2. Ако набора от знаци не е това, което искате, трябва да направите резервно копие на вашата база данни, преди да продължите нататък.

3. Изпълнете следната SQL заявка, за да промените комплекта от характеристики на пълната база данни:

 ALTER БАЗА ДАННИ MyDb CHARACTER SET utf8; 

Променете "MyDB" до името на вашата база данни.

4. Сега преобразувайте таблицата "wp-posts" в желаното кодиране на знаци:

 ALTER ТАБЛИЦА wp_posts ХАРАКТЕРИСТИКА SET utf8; 

Променете "wp_", ако използвате различен префикс.

Тези стъпки ще премахнат въпросите или други странни знаци и вместо това ще покажат правилните чужди знаци. Ако имате много колони в базата данни на WordPress, които са настроени на персонализиран набор от знаци, ще трябва да смените набор от символи на всяка колона един по един.

Тъй като UTF-8 е най-често използваното кодиране на знаци, ако вашият блог използва друго кодиране на знаци и искате да го промените на UTF-8, можете да използвате приставката, наречена UTF-8 DB Converter. Въпреки че не е актуализиран от доста дълго време, той ще може да изпълнява задачата си ефикасно. Моля, имайте предвид, че ако имате голяма база данни, конвертирането на набор от знаци ще отнеме много време.

Разкажете ни за вашия опит, ако имате същия проблем.