Com Convertir Conjunt de Caràcter i Col·lació de Base de Dades de WordPress
Des de WordPress 2.2, tret de suports de WordPress que permet a l'usuari definir tant el joc de caràcters de base de dades de WordPress com col·lació amb valors de DB_CHARSET i DB_COLLATE en arxiu de wp-config.php. Amb aquests valors definits, WordPress utilitzarà el characterset de base de dades designat (charset) i col·lació de base de dades (i.e. ordenació de les cartes, nombres, i símbols d'un joc de caràcters) quan connectant presenti una base de dades.
Tanmateix, existint les instal·lacions de WordPress que es milloren des de versió anterior de WordPress o no explícitament posen una col·lació de charset d'UTF-8 Unicodi, el joc de caràcters de base de dades d'omissió s'estableix normalment com Latin1 (demori gairebé tota la instal·lació de MySQL) amb col·lació de latin1_swedish_ci. Si corre un blog bilingüe o multilingüe amb WordPress, es pot encarar amb problema en caràcter que codifica quan s'escriuen els seus correus de blog en unes altres llengües estrangeres, o quan exporta i reserva la base de dades i intent posterior de reimportar l'abocador de base de dades en cas de fracàs de base de dades o migració de servidor i passant. El símptoma és obvi, el seu WordPress envia o fulleja will conté caràcters confusos, estranys i estranys, en algun moment només lots de ????? (interrogants), deixant illegible la base de dades de WordPress amb el seu treball dur inútil i imprès. (Pot fer també per col·lació de charset equivocada)
La millor solució al problema de codificació de caràcter en WordPress és convertir el charset o base de dades i col·lació en UTF-8 o Unicode. Tanmateix, no POT simplement connectar a MySQL via closca o phpMyAdmin i esperant totes les seves escriptures es convertiran de manera bonica. Com explicar per conversió de base de dades de WordPress guia, converteix jocs de caràcters demana utilitzant l'el MySQL CANVIAR comanda de TAULA. Quan convertint-se els jocs de caràcters, tot el TEXT (i similar) presenta són convertits a UTF-8, però que la conversió TRENCARÀ TEXT existent perquè la conversió espera que les dades per ser en latin1, però WordPress puguin haver emmagatzemat caràcters unicodi en una base de dades de latin1, i com a resultat, les dades podrien esdevenir com escombraries després d'una conversió!
El guia proporciona un guia molt aspre i imprecís com a solució damunt com convertir de fet taules de base de dades de WordPress MySQL des d'un joc de caràcters en un altre, normalment UTF-8. Tanmateix, el guia de fet treballa, encara que el procés pot ser llarg. Per convertir-se, els passos implicats generalment han de canviar cada i cada TEXT i relacionaven camps dins de tots els WP taules a GOTA, llavors canviar el joc de caràcters de base de dades i finalment convertir els camps de GOTA altra vegada en TEXT. Aspectes fàcil, però quant temps prendria convertir tants camps a tantes taules? A més, també necessitarà recordar el tipus original i llargada o valors de tots els camps.
andersapt ha enviat una escriptura de conversió anomenada convert_to_utf8_sql_generator.txt que automàticament genera una llista de declaracions de SQL i les comandes necessiten convertir plenament la seva base de dades de WordPress en UTF8 basat en el guia. Tanmateix, sembla per ser un error menor amb l'escriptura, encara que l'autor afirmava que funcionava, on en el meu cas, això simplement no generarà la llista de comandes de SQL de córrer a causa de l'error "Error Fatal de PHP: Anomeni a una funció de membre get_results() en un no-objecte en convertir. php en línia 37'. Una vegada fixat, amb aquesta escriptura a mà nosaltres poden fàcilment i de pressa converteix la base de dades, presenta i presenta per utilitzar col·lació de utf8_general_ci.
Bitllet: He provat plugin de Convertidor de Base de Dades d'UTF-8, però és un fracàs. Semblava com el canvi d'autors a joc de caràcters directament.
El guia per Convertir Caràcter de Base de Dades de WordPress S'Enduria a UTF8 (Unicode)
- Prengui el WordPress blog fora de línia posant un out-of-service o avís de manteniment.
- Base de dades de reserva - això és molt important, res no es garanteix per treballar. Si està utilitzant cPanel o altre quadre de control, és millor realitzar una reserva de base de dades des del quadre de control mateix, en comptes d'on pot restaurar la base de dades en una peça per declaracions de SQL, en termes d'abocador normal.
- Descarregui l'escriptura de convert_to_utf8_sql_generator.txt fixa i guardi'l amb una ampliació de PHP.
- Modifiqui l'escriptura a aportació el nom de base de dades que el seu WordPress blog està utilitzant. Localitzi el text següent:
Tables_in_DATABASENAME
El DATABASENAME en vermell és l'única cosa que necessita canviar per lligar amb el seu nom de base de dades de WordPress. Això havia aspectes com això després de canvi, per exemple,
Tables_in_wp_mydigitallife
- Carregui el convert_to_utf8_sql_generator.php (o pot rebatejar a un nom més curt com convertir. php) al guia d'instal·lació de WordPress d'arrel de base, on wp-config.php està situat també.
- Ara, cridi i miri l'escriptura des de qualsevol navegador web. Fer això, simplement afegir convert_to_utf8_sql_generator.php (o qualsevol nom que dóna a l'escriptura) a l'extrem del seu blog URL (i.e http://www.mywebsite.com/convert_to_utf8_sql_generator.php) i prémer Entren. Una llista llarga de declaracions de SQL es generarà en la pàgina web.
- Asseguri que el seu post_content i títol de correu presenti en taula de wp_posts FA NO pertany a alguns índexs o índexs de FULLTEXT. Més el tipus dels camps poden no ser convertit en GOTA amb un de la llista d'errors sota. Alguns plugins, com els correus relacionats tendeixen a afegir índexs a aquests camps. En aquest cas, temporalment deixar els índexs.
ERROR 1170 (42000): Columna de GOTA/TEXT 'post_content' utilitzada en especificació clau sense una llargada clau
ERROR 1283 (HY000): La columna 'post_content' no pot ser part d'índex de FULLTEXT
- Connecti's a la seva closca de servidor per Telnet o SSH. Es pot saltar aquesta part de closca d'Unix que utilitza si pretén utilitzar phpMyAdmin per fer el treball brut, però no ho he tastat. Així si fa, fer resposta en si es pot fer.
- Connecti a servidor de MySQL des de la closca.
- Emeti la comanda següent primer a l'apuntador de MySQL:
utilitzi DATABASENAME;
Una altra vegada, reemplaci DATABASENAME en vermell al nom de base de dades de WordPress present.
- Llavors copiï i enganxi la llista sencera de declaracions de SQL auto generat per l'escriptura de conversió, i pasta ells a l'apuntador de MySQL. S'hauria de processar ara cada i cada comanda de SQL i ser executada per MySQL un per un. Pot necessitar prémer Introduir clau per acabar de l'últim.
- Durant el processament, els missatges d'error similars es referien a llargada clau com esmentada poden apareix. En el meu cas, la conversió a GOTA fallava amb tal missatge en els camps següents:
wp_categories.category_nicename
wp_comments.comment_approved
wp_links.link_visible
wp_options.option_name
wp_postmeta.meta_key
wp_posts.post_status
wp_posts.post_name
wp_posts.post_type
wp_usermeta.meta_key
wp_users.user_loginTots aquests camps són improbables a conté caràcters no-ASCII. I els camps com category_nicename (slug de categoria) i post_name (slug de correu) han estat URL codificat (on el seu URL amb caràcters no alfanumèrics perillosos es canviarà per un percentatge (%) senyal seguit per dos dígits de malefici i espais codificats com més (+) senyals). Marqui amb inicials codificació de codis de byte i assignacions de caràcter perquè UTF-8 és coherent amb ASCII, la conversió tan directa d'aquests camps a UTF8 no hauria de portar massa problema.
- Editi l'arxiu de wp-config.php per sumar-se en definicions de DB_CHARSET i DB_COLLATE. Afegeixi el seguir dues línies, preferiblement sota la secció d'Escenes de MySQL:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE',);Com explicat en Còdex de WordPress, DB_COLLATE és buit deixat (nul) de manera que la col·lació de base de dades sigui automàticament assignada per MySQL basat en el joc de caràcters de base de dades.
- Recreï els índexs i/o FULLTEXT indexa estat deixat, si n'hi ha.
- Activi el blog altra vegada a mode de producció.
- Comprovi el seu blog per veure-hi si tot i cada caràcters és correcte.
- Suprimeixi l'escriptura de PHP.
IMPORTANT: La pàgina és màquina traduïda i proporcionada "com és" sense garantia. La traducció automàtica pot ser difícil d'entendre. Si us plau refereixi's a article anglès original quan sigui que possible.
Articles Relacionats
- IMP-00016 Exigia Conversió de Conjunt de Caràcter a Què No Es Donava Suport Error quan Importa a Base de Dades d'Oracle
- Com Personalitzar, Modificar o Canviar Error de Connexió de Base de Dades de WordPress Pàgina
- Problema de Codificació de WordPress Charset Després de Millorar a la Versió 2.2
- Comprovi i Optimitzi MySQL Base de Dades Automàticament amb Crontab/Cron
- Com Moure WordPress Blog a Camp Nou o Localització
- Converteixi's Base de Dades de Treballs de Microsoft (.wdb) a CSV o Excel·leix Sense Treballs Instal·lats
- Error d'EXP-00091 d'Oracle Quan Base de Dades d'Exportació
- Error de Pregunta de SQL de WordPress MySQL en Classe de WPDB
- Paginating o Correu de WordPress de Divisió o Pàgina amb NextPage en WordPress Que No Treballa
- Com Llistar i Lluir Correus de WordPress Que Comenta i Cascavelleja (No Permetre)










































14 de juny, 2009 00:15
[...] la codificació canvia des de latin fins a UTF-8 després de la versió Wordpress 2.2. Això ocorria el maig 0 f 2007, però la solució potencial és dauntingly complexa per un mer [...]
29 de maig, 2009 03:59
Com "temporalment deixa un els índexs"? Estic tenint l'error feta referència a ell al Pas 7 a dalt. Gràcies.