Sei sulla pagina 1di 13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

Viajesyprogramacion
ElBlogdedbarreno,sobreviajesymis
experienciascomoprogramadorde
aplicacionesweb.

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML
Publicadoel27deoctubrede2012

Somosmuchoslosque,cuandoestamoscomenzandoaprogramar,nosencontramosconunproblemaqueaveces
nosconsumemuchomastiempodelquedeberayavecesalbuscarunasolucinenlaredlocomplicamostodava
ms,debidoalagrancantidaddeinformacinexistenteyaqueenmuchasdelaswebsyblogsqueheestado
viendotelianmasqueayudan.
Yovoyaexplicarmimtodo,sinentraraverlasdiferenciasentreISO88591yUTF8,quesonlasdosmas
comunes.
EnmicasoyosiempreusoUTF8ylaraznesqueenlasaplicacionesqueestoydesarrollandoutilizomuchola
claseSimpleXMLdePHPytodoslosdatosextraidosconestaclasesiempreestncodificadosenUTF8,simi
aplicacinutilizaraISO88591tendraquepasartodalainformacinporlafuncinutf8_decode()dePHP,conlo
queestarasobrecargandoelscriptsinnecesidad.
Laclaveestenquehayquedecirleatodoquecotejamientoeselqueestamosutilizando.

1.Codificacindeldocumento.
Enprimerlugarhayquecomprobarlacodificacindeldocumento,siusasDWyWindowsenespaol
posiblementeelvalordeCodificacinpordefectolotendrsenEuropeooccidental.
EnDreamweaverlopuedescomprobarpulsandoCRTLJ,oenmodificarpropiedadesdepagina.
EnNotepad++loversenlapestaaCodificacin.

Seguir

Seguir Viajes y
programacion
Recibe cada nueva publicacin
en tu buzn de correo
electrnico.
Introducetudireccindecorreoelectrnico

Suscrbeme
Construye un sitio web con
WordPress.com

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

1/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

Siestolotienesbien,tuetiqueta<meta>deldocumentodeberasercomosigue:

<metahttpequiv="ContentType"content="text/htmlcharset=utf8"/>

2.MySQL
Aquesdondesurgenlamayorpartedelosproblemas.Cuandocreamoslastablasenlabasededatostenemos
quetenerespecialcuidadodequetodosloscotejamientosestnenutf8.Cuandolodejaspordefecto,siutilizas
phpmyadminesteprocesoseconvierteenunaloteraycuandoterminesdecreartubasededatosversquecada
cosaestcotejadadeformadiferente
YovoyautilizarUTF8,sitedecantasporISO88591,entodaslasseleccionesquenombroacontinuacin
tendrsqueelegirlatin1_general_ci,sieligeslatin1_spanish_citambinfuncionar,peroporfavor,usaentodas
lomismo.

Cotejamientoparalasconexionesalservidor.

Cotejamientoparalabasededatos
Enlapestaaoperacionesdelapantallaprincipaldelabasededatos

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

2/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

Cotejamientoparalastablas.
Cadatablaquecreemosdebertenerelmismocotejamiento

CotejamientodeCampooColumna.
EsimportanteindicarelcotejamientoquevaatenerelCampo,sobretodosienestevamosaalmacenarcaracteres
detexto.Lgicamenteauncamponumrico,booleanoetcnohayqueindicarelcotejamientoporquesucontenido
noincluirncaracteresextraos.

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

3/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

3.PHP
PorltimovamosadecirlealMysqlenPHPcmonosvamosacomunicarconlabasededatosparaquenohaya
ningntipodeconfusin.
YoutilizosiemprePDOparalaconexiondePHPconlabasededatos,peroestoesotrotemaquedaparamucho.
Asquedaralaconexin.Alcrearelmanejadordelaconexinhayqueincluirenelarraydeopcionesla
codificacin,comosigue:

$pdo=newPDO('mysql:host=servidordbname=bd',$usuario,$clave,array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET

Siusaslaconexionestandar,bastaconaadir

mysql_set_charset('utf8')

justodespuesdeabrirlaconexionconlabasededatos.
Acerca de estos anuncios

YouMayLike
1.

Compartir

Google

Twitter

Facebook

Megusta
Aunbloguerolegustaesto.

Estaentradafuepublicadaenphpyetiquetadaacentos,caracteresextraos,cotejamiento,iso8859,problemaacentos,problemacaracteres,programacion,utf8.Guardael
enlacepermanente.

55respuestasaLasolucinalosproblemasconlosacentosenPHP,MySQLyHTML
Xendessdijo:
18deabrilde2013en10:47

Dios.mehassalvadolavida.
Responder

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

4/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

XavierVeladijo:
2deseptiembrede2013en16:29

Teagradezcomuchsimo!!
Responder

Rubndijo:
10deseptiembrede2013en02:21

Gracias.Nohabatomadoencuentalafuncinset_charset().Resolvmiproblema.
Responder

Unnamed_Freakdijo:
1denoviembrede2013en14:34

Muchisimasgracias!!
Responder

dbarrenodijo:
2denoviembrede2013en15:47

Muchasgraciasavosotrosporvuestroscomentarios.
Responder

Albertodijo:
20deoctubrede2014en15:38

Ereslamquina!!Despusdetodalamaanaypartedelatardecomolococonestetema,mehasdadolasolucin
mssencilla.Gracias!!
Responder

angheldijo:
4denoviembrede2013en18:32

Teagradezcomuchsimo!!,deverdad
Responder

Kurtsukedijo:
6denoviembrede2013en19:26

Ereselmejor

muchossalu2Gracias!!!

Responder

juancarlosdijo:
10denoviembrede2013en22:35

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

5/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

graciasamigo..graciasdecorazn
Responder

juancarlosdijo:
10denoviembrede2013en22:50

sabesmegustarademeindiquescomoregistrarfechasenmibasededatosdelasiquienteforma02/05/2013yno
2013/05/02
Responder

dbarrenodijo:
12denoviembrede2013en10:29

HolaJuanCarlos,
Graciasportuscomentarios.
EnMySQLhayvariasformasdealmacenarunafecha.Sinonecesitasalmacenarlahorayoterecomiendousarel
tipodedatosDATE.
ElformatoparaalmacenarlafechaslopuedeserYYYYMMDD,estonosepuedecambiar,peroesonotieneque
suponerningnproblemayaqueexistenmuchasformasdeformatearlafechaparamostrarlacomonosotros
queramos.
YopersonalmenteprefieroformatearlaenPHPutilizandolaclaseDateTime()delasiguienteforma:
$Fec=newDateTime('20131125');
$fecha=$Fec>format("dmY");

Otraformaesusarlatpicafunciondate()deestaforma
$fecha=date('dmY',strtotime('20131125'))

Peroojoconestemtodoyaquenosoportafechasinferioresal13Diciembre1901ni(loqueesmasimportante)
superioresa19Enero2038.
PerohayotraformayesqueMySQLtedeyalafechaenelformatoquenecesites.Paraellohayqueutilizarlas
funcionesqueMySQLtieneparautilizarconlasfechas.
Laformadeusarlasesincluirlasenlasconsultasyunejemplopodraserelsiguiente:
SELECT`usuarios`.`nombre`,DATE_FORMAT(`usuarios`.`fecha_nacimiento`,'%d%m%Y')ASfecha_nacimientoFROM
`usuarios`WHERE`usuarios`.`id_usuario`=1

HuyedealmacenarfechascomoVARCHAR,espocoeficazyslotetraerproblemas.
Esperohaberteayudado.
Unsaludo
Responder

Chichodijo:
21denoviembrede2013en11:06

Muchasgraciasporestegranarticulo,yaqueenmuchasocasionesmehabiavueltolococonestetema.
Responder

alopezdijo:
3dediciembrede2013en22:41

Muybuenarticulo,llevomuchotiempodesarrollandoynuncamehabaocurridoelproblemasoloahoraquedecid
https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

6/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

pasarmeaunservidormasgrande.meocurriesto
Responder

SrlLvrsdijo:
5dediciembrede2013en14:51

Porfin!!Graciasamigo,teagradezcoesto,medmuchoscabezazosantesdedarmecuentademierror.
Algoquetalvezpuedasagregar,esquesiestntrabajandoconSublimeText2,elarchivo.PHPvanamenFile>Savewith
Encoding>UTF8withBOM.
Saludos!!
Responder

dbarrenodijo:
5dediciembrede2013en15:15

Muchasgraciasportuaporte,seguroqueaalguienleayuda.
Responder

Martndijo:
12dediciembrede2013en20:41

Anduvoespectaculartusolucin,resumiendo:
EnHTML:
EnMYSQL:
Enlabase,tablaydatoscolocarenelcotejamientoutf8_general_ci
EnPHP:
Luegodeconectarconlabasededatos
mysql_set_charset(utf8)
Saludos
Responder

Rockodijo:
16dediciembrede2013en18:50

enqueparteingresasel
mysql_set_charset(utf8)
???intenteynopude,creoquesolomefaltaestepaso.
Responder

dbarrenodijo:
16dediciembrede2013en22:39

Noutilizoestaopcin,siempretrabajoconPDO,perocreoqueseaadejustodespuesdeabrirla
conexion,antesdeseleccionarlabasededatos.

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

7/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

Rockodijo:
16dediciembrede2013en03:50

enquepartevaelcode:
mysql_set_charset(utf8)
?Muchasgracias
Responder

RicardoNioVargasdijo:
10deenerode2014en23:28

Maravilloso,resumido,sencilloyatacandotodoslosposiblespuntosdondeexistenlosproblemas.
Felicidadesporelaporteymuchasgracias
Responder

Ivndijo:
14deenerode2014en05:21

Muchasgraciasmeayuddemasiado.(Y)
Responder

JoseArmandoUscangadijo:
14deenerode2014en06:55

GraciasfuncionayotambienloutlizoconPDOsaludos
Responder

Andrsdijo:
20deenerode2014en11:33

Otroalquesalvaste!
Responder

pedroborrsdijo:
20deenerode2014en12:39

Gracias,gracias,gracias
Responder

henryhbogota,colombiadijo:
21deenerode2014en05:53

Conphpmysqladminnecesitocreartablaconfilasas:CUENTAylosdocemeses,cadaunoconSALDOANTERIOR,
DEBITOSenesemes,CREDITOSenesemesyNUEVOSALDOoseaunarraypara12mesesdentrodeunacolumnao
https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

8/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

tendrquedefinir4columnaspormesydefinirentonces4X12=48columnas?Estoyaprendiendo,MUCHASGRACIASpor
orientarme!.
Responder

Raldijo:
5defebrerode2014en19:07

Funcintotalmente.
Gracias!
Responder

jackworthindijo:
10demarzode2014en11:16

Gracias!!!!
Responder

AndresDiaz(AnzOne)dijo:
26demarzode2014en14:55

Muchasgracias,miproblemasedebaalcotejamientoenlaDB,entidadesycamposatravsdesugerenciasprobeconlatin,
utfspanish_ci,ci2ynofuncionootraalternativaesconhtmlentities.
LaconfiguracindeleditorenmicasoGeanyesen:Documento>EstablecerCodificacin>Unicode>Unicode(UTF8)
Responder

rogervaldezdijo:
19deabrilde2014en16:57

MuchasGraciasDaniel!!!
Responder

ERZdijo:
6dejuniode2014en08:45

Holalescomentoqueintenteestoynomefunciono,miprincipalproblemaesqueparecequeelcomando
mysql_set_charset()yanofunciona,despusdeunabsquedalocambiepor:
mysqli_set_charset(database,utf8)
yalparecerfuncionaperfectamente.
Saludos
Responder

dbarrenodijo:
28dejuniode2014en15:56

Buenas,
https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

9/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

Graciasporelaporte.
MySQLiesunaextensinalgomsmodernadeMySQL,masrecomendabledeusarquestaltima,yaque
efectivamenteestobsoletaapartirdelaversion5.5dePHPytiendeadesaparecer.
Peroactualmentesigueoperativa,elmotivodequenotefuncionemysql_set_charset()esqueentuscriptabrirs
laconexinconmysqli_connect(),loquesignificasqueteconectasalabasededatosutilizandoestaextensiny
portantotodaslasfuncionesqueutilicesdebenperteneceralgrupodefuncionesdeestaextension:
mysqli_error(),mysqli_fetch_array()etc.
DetodasformasyoloquerecomiendoesutilizarPDO,esmasrpidoymasseguro,ynoestancomplicadocomo
alprincipiopuedeparecer.Conunosconocimientosmnimosdeprogramacionorientadaaobjetossepuede
implementarsindificultad.
Unsaludo
Responder

PlacidoOrtega(@ortegatorres10_)dijo:
8dejuniode2014en22:10

Muybuenaporte,gracias.
Responder

CARLOSdijo:
23dejuliode2014en22:51

ESTOYUTILIZANDOLACLASEFPDFYSIGOLASINSTRUCCIONESANTESEXPUESTAYNOCONSIGOMOSTRARLAS
YTILDES.QUEDEBOHACERPORFAVORAYUDA
Responder

dbarrenodijo:
24dejuliode2014en16:26

Hola,
Contanpocainformacinesmuycomplicadopoderayudarte.EnladocumentacindeFPDFpodrsencontrarel
juegodecaracteresqueutilizalaclase.
Dependiendodequestsutilizandotuycmoestconfiguradolaclaseexterna(fpdf),intentaaplicaracada
cadenadetextolafuncionutf8_encode()outf8_decode(),averquetal.
Noeslamejorforma,peroavecesnoquedamasremedio.LoidealseraconfigurarlaclaseFPDFparaquetodala
aplicacinutiliceelmismojuegodecaracteres,perocontanpocainformacin,esloquepuedodecirte
Saludos
Responder

jorgedijo:
9deagostode2014en19:46

Excelente.grandioso,busqueybusquenada.
Perotuposteselbueno,milgracias,saludos.
Responder

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

10/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

ObedAbdiasLunaCruzdijo:
11deseptiembrede2014en19:54

Muchasgraciasmiestimado,
Responder

ObedAbdiasLunaCruzdijo:
11deseptiembrede2014en19:55

gracias
Responder

Reynaldodijo:
12deseptiembrede2014en04:00

Graciasamigomehasidodeayudo.
Amigotengounproblemaynosecomosolucionarlo,loquepasaescuandoyocreoundocumentoHTMLencualquier
programa(sublimetext,notepad,dreamweaver,netbean)correnconnormalidadperocuandocreoundocumentoPHPen
cualquieradelosmencionadosaexcepcindelNetBeansnosemuestrannadaporejemploestecodigo:
Nosemuestra.Esotyutilizandoelxamppyletengoelapacheymysqlactivado.
Responder

Yorchdijo:
12deseptiembrede2014en11:45

Tequieeerooooo.Hacemesesymeses,pornodeciraos,quetengoelproblemilladelastildes,yhastaahorahacaapaos
sustituyendocaracteres,perofinalmenteyGRACIASATIsemeharesuelto.Qufcilpareca!Ypensarquetenalastablas
enuncotejamientoylaswebsenotroGRACIAS!!
Responder

peterdijo:
14deseptiembrede2014en17:17

Quebuenpost!!!Meacabasdesolucionarunproblemaquemehubieracostadohorasencontrarlasolucin!!!
Muchasgracias!!!
Responder

facuapdijo:
18deoctubrede2014en18:30

quetodoslosdiosestebendigan,granexplicacion.!!!
Responder

RexPestdijo:
29deoctubrede2014en18:50

Sosgrosoestofuebrillante,muchasgracias
https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

11/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion
Responder

Rogerdijo:
17denoviembrede2014en11:46

Hacatiempoquehabatrabajadocontodoestoperoaunoseleolvidancosas.Gracias,mehaservidodemucho!
Responder

NancyCruzSandovaldijo:
17denoviembrede2014en16:15

Amigomuchsimasgracias!!!Funciontalcomoindicas.BendicionesdesdeEcuador!!!
Responder

msolis86dijo:
17denoviembrede2014en16:38

MuchasGraciasmehafuncionadoenmiproyecto!!!
Responder

LuisRiverodijo:
21denoviembrede2014en03:30

Ereselmejor,mesalvaste,yaestabamediolococonesto
Responder

Danieldijo:
3dediciembrede2014en23:01

Buenisima.NotableSolucion.
Responder

Josdijo:
5deenerode2015en14:47

Muchsimasgracias,mequedclaro.
IntentarusarPDO.
Responder

LuisHerazodijo:
6deenerode2015en21:59

MeFuncionomysql_set_charset(utf8)ExcelenteAporte
Responder

Pingback:ProblemasdeAcentosycaracteresaltraerdatosdeunDatabaseconPHP|InformaticToYou

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

12/13

12/7/2015

LasolucinalosproblemasconlosacentosenPHP,MySQLyHTML|Viajesyprogramacion

AngryBirdsdijo:
25demarzode2015en01:37

Muchasgraciasestabaenredadoconlaseesmehaservidodemuchotayuda
Responder

CristianDdijo:
28demayode2015en01:31

Excelenteaporte!Llevabamuchotiempoluchandoconestodelastildes
Responder

eduardogomezsk8dijo:
6dejuniode2015en21:29

GRACIAAAAASAMIGO!
Responder

javiercebdijo:
29dejuniode2015en17:28

Amigoteniavariosdiasbuscandounasolucionparaesto,milgracias
Responder

Rodrigodijo:
30dejuniode2015en02:01

Estimadonuncadejouncomentario,perotupostvalelapenahacerlo.EresunCrack.midolo
Responder

Viajesyprogramacion
EltemaTwentyTen.

FuncionaconWordPress.

https://dbarreno.wordpress.com/2012/10/27/lasolucionalosproblemasconlosacentosenphpmysqlyhtml/

13/13

Potrebbero piacerti anche