Problemă de codificare a caracterelor după schimbarea serverelor

5 mar. 2011, 18:38:06
Vizualizări: 29.1K
Voturi: 5

Recent mi-am mutat site-ul bazat pe WordPress de pe DreamHost VPS pe un VPS Linode care rulează Debian + LEMP. După ce am pus site-ul în funcțiune din nou, am observat multe caractere eronate în postări; caractere precum " și - erau înlocuite cu simboluri fără sens.

După câteva investigații, părea clar că problema era legată de codificarea caracterelor.

Am găsit un ghid care sugera editarea fișierului wp-config.php și comentarea următoarelor linii:

define('DB_CHARSET', 'utf8'); și define('DB_COLLATE', '');

Am făcut această modificare și a rezolvat problema, dar mă întreb dacă aceasta a fost cea mai bună abordare. Mulțumesc pentru orice sfat.

1
Comentarii

Poate greșesc, dar când am avut aceeași problemă la mutarea serverelor, era din cauza salvării fișierului în format ASCII în loc de UTF.

Bainternet Bainternet
5 mar. 2011 18:41:06
Toate răspunsurile la întrebare 4
2

După ce am petrecut toată ziua lucrând la asta, am găsit în sfârșit un ghid care a funcționat perfect:

Înainte de asta, am încercat să urmăresc informațiile lui @Rarst, am încercat să exportez baza de date și să o curăț manual, am încercat pluginul UTF-8 Sanitize cu o versiune modificată de aici http://www.prelovac.com/vladimir/ultimate-solution-to-weird-utf-character-encoding-problem (care de fapt a funcționat destul de bine, dar nu a reparat toate caracterele. Și probabil a fost o idee proastă).

Oricum, dacă vreunul dintre voi întâmpină vreodată această problemă, verificați primul link pe care l-am postat. Procedura a fost destul de simplă și s-a rezumat practic la înlocuirea SET NAMES latin1 cu SET NAMES utf8 după exportul bazei de date, apoi asigurându-vă că importați noua bază de date curățată explicit ca UTF8.

6 mar. 2011 01:17:48
Comentarii

Pluginul UTF8 Sanitize funcționează pentru mine (deși pluginul este destul de vechi - menționează că nu a fost actualizat de 2 ani din momentul acestui comentariu https://wordpress.org/plugins/wp-utf8-sanitize/) reparând un dump de bază de date care era corupt.

artlung artlung
4 sept. 2014 00:05:17

primul link este stricat

Duck Duck
1 apr. 2017 20:58:34
4

Iată o altă soluție care a funcționat pentru mine...

doar comentează DB_CHARSET și DB_COLLATE în wp-config.php

//define('DB_CHARSET', 'utf8');

//define('DB_COLLATE', '');
9 nov. 2014 14:41:02
Comentarii

Te rog să explici de ce acest lucru ar ajuta.

kaiser kaiser
9 nov. 2014 15:08:23

Cum este aceasta "o altă soluție"? Exact același lucru a fost deja menționat în întrebare; a încercat să comenteze acele două linii în wp-config.php și a funcționat, dar se întreba dacă există o soluție mai bună. Răspunsul tău nu adaugă nimic.

Gabriel Gabriel
9 nov. 2014 15:28:37

Îmi pare rău că nu am citit complet întrebarea... greșeala mea

Sabeer Sabeer
10 nov. 2014 06:42:12

Funcționează perfect !!!

Mike Nguyen Mike Nguyen
4 ian. 2017 14:21:49
1

Consultați Conversia Seturilor de Caractere ale Bazei de Date în Codex. Articolul are o notă despre faptul că a fost complet rescris în versiunea 3.0.1, deci informațiile ar trebui să fie actuale.

5 mar. 2011 19:34:19
Comentarii

Mulțumesc pentru răspuns, Rarst. A fost puțin mai extrem decât aveam nevoie, am ajuns să înlocuiesc doar o instanță de SET NAMES latin1 cu SET NAMES utf8 și să reimportez baza de date explicit ca UTF8.

Evan Wondrasek Evan Wondrasek
6 mar. 2011 01:18:39
0

Am mutat fișierele site-ului meu dintr-un director vechi într-unul nou și am reușit să modific:

define('DB_CHARSET', 'utf8mb4');

în

define('DB_CHARSET', 'utf8');

Și asta a rezolvat problema cu spațiile albe și diamantele negre.

3 ian. 2016 22:15:21