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)

  1. Prengui el WordPress blog fora de línia posant un out-of-service o avís de manteniment.
  2. 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.
  3. Descarregui l'escriptura de convert_to_utf8_sql_generator.txt fixa i guardi'l amb una ampliació de PHP.
  4. 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

  5. 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é.
  6. 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.
  7. 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

  8. 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.
  9. Connecti a servidor de MySQL des de la closca.
  10. 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.

  11. 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.
  12. 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_login

    Tots 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.

  13. 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.

  14. Recreï els índexs i/o FULLTEXT indexa estat deixat, si n'hi ha.
  15. Activi el blog altra vegada a mode de producció.
  16. Comprovi el seu blog per veure-hi si tot i cada caràcters és correcte.
  17. 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.


27 Respostes a "com Convertir Conjunt de Caràcter i Col·lació de Base de Dades de WordPress"

Pàgines: [2] 1 » Demostració Completament

  1. MySQL Tech Bleg | Neptunus Lex
    14 de juny, 2009 00:15
    27

    [...] 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 [...]

  2. daniel
    29 de maig, 2009 03:59
    26

    Com "temporalment deixa un els índexs"? Estic tenint l'error feta referència a ell al Pas 7 a dalt. Gràcies.

Pàgines: [2] 1 » Demostració Completament

Deixi una Resposta

Pot utilitzar aquests cordons: <A href=" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscrigui tret de comentaris ha estat impossibilitat. Per rebre notificació d'últims comentaris enviats, subscriure's a menjar My Digital Life Comments RSS o apuntar-se a rebre els comentaris nous a l'e-mail diari digereixen.
Custom Search

Articles Nous

Termes de Recerca Nous per l'Article

Col·lació de canvi de phpmyadmin - MySQL converteix col·lació - mysql converteix joc de caràcters - converteix col·lació - mysql converteix codificant - mysql converteix charset - oracle RECULL - converteix charset - php converteix caràcters - mysql converteix - phpmyadmin de col·lació de canvi - joc de caràcters de phpmyadmin - col·lació de wordpress - col·lació de taula de canvi de phpmyadmin - wordpress charset - wordpress latin1_swedish_ci - mysql converteix utf8 - oracle converteix joc de caràcters - codificació de canvi de phpmyadmin - oracle converteix - mysql converteix base de dades codificant - col·lació converteix - mysql converteix presenta codificant - converteix col·lació mysql - php converteix joc de caràcters - mysql converteix caràcter codificant - joc de caràcters d'oracle - col·lació de phpmyadmin - col·lació de base de dades de canvi de phpmyadmin - converteix latin1_swedish_ci a utf8 - converteix mysql col·lació - mysql converteix caràcter - converteix recull - mysql converteix charset de base de dades - php converteix charset - latin1_swedish_ci wordpress - php converteix codificació de caràcter - characterset - sql converteix charset - mysql converteix socarrima - codificació de base de dades de wordpress - sql php converteix chinese - convertidor de mysql charset - com convertir Objecta de classifica wpdb penjar en php - estrany caràcters phpmyadmin - base de dades de latin1_swedish_ci wordpress - mysql converteix joc de caràcters de base de dades - conversió de col·lació de mysql - mysql converteix caràcters - mysql de col·lació de canvi - mysql CONVERTEIX A JOC DE CARÀCTERS - converteix joc de caràcters - col·lació de canvi de mysql per tot presenta - php converteix codificació de text - php converteix latin1 a utf8 - converteix mysql de col·lació de taula - convert_to_utf8_sql_generator.txt - canvi de col·lació - problema de wordpress charset amb bulgarian - base de dades de wordpress converteix - col·lació de base de dades de wordpress - converteix codificació de caràcter - php converteix latin1 - col·lació de canvi de wordpress - CONVERTEIX BASE DE DADES A UTF8 - MySQL converteix a unicodi - auto converteix latin1 a utf-8 funció de mysql php - nom de base de dades de wordpress - converteix mysql charset - col·lació de canvi de mysql - mysql " cannot ser separa d'índex de FULLTEXT" - jocs de caràcters de wordpress - codificació de base de dades de canvi de mysql - col·lació d'oracle - latin1_swedish_ci a utf8 -