Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
951 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  vieux site avec base en ISO-8859-1 ou windows-1252 vers UTF-8

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

vieux site avec base en ISO-8859-1 ou windows-1252 vers UTF-8

n°2053103
gatsu35
Blablaté par Harko
Posté le 30-01-2011 à 23:27:14  profilanswer
 

Je suis actuellement en train de refaire tout un site. Je le refais en plusieurs phases :  
Phase 1 : Changement graphique du site, donc changement du code HTML englobant (le contenu interne reste dans un premier temps).
 
J'ai reconvertis tous les fichiers PHP du site en UTF-8, avec déclaration du charset UTF-8, donc là aucun soucis :)
mais le problème vient des données provenant de la base mysql, tout est fucké au niveau des accents.
j'ai fait un import de la base, est-ce que je me suis chié dessus en faisant l'import et que j'aurai du déclaré le fichier en ISO-8859-1 ? ou est-ce que ya moyen que je convertisse toute la base en UTF-8


---------------
Blablaté par Harko
mood
Publicité
Posté le 30-01-2011 à 23:27:14  profilanswer
 

n°2053106
esox_ch
Posté le 30-01-2011 à 23:37:22  profilanswer
 

T'as pensé d'utiliser un truc comme ça : http://dev.mysql.com/doc/refman/5. [...] nvert.html
pour convertir le tout?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2053109
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 00:07:17  profilanswer
 

Et tu aurais un truc pour TOUT convertir d'un coup ?
J'ai la flème de chercher et franchement pas le temps, j'ai 200 fichiers PHP faits à la bite et au couteau à repasser dans un HTML propre.
Du coup la DB j'ai pas envie de me faire chier à cherche :/


Message édité par gatsu35 le 31-01-2011 à 00:08:01

---------------
Blablaté par Harko
n°2053110
esox_ch
Posté le 31-01-2011 à 00:08:20  profilanswer
 

oh t'arrives pas à écrire une moulinette pour le faire?  
J'ai jamais eu à le faire, désolé


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2053111
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 00:12:17  profilanswer
 

esox_ch a écrit :

oh t'arrives pas à écrire une moulinette pour le faire?  
J'ai jamais eu à le faire, désolé


bah PHP et moi on est pas encore totalement copains, et les fichiers HTML que je tape là sont pas totalement propres ya un peu de merde partout.
Mais ptet que je devrais faire une moulinette, tu as raison :o


---------------
Blablaté par Harko
n°2053113
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 00:56:43  profilanswer
 

edit je viens de modifier le fichier d'import en UTF-8, je redéclare ma base en UTF-8, tout va bien, mais j'ai encore une couille, mes requêtes me crache sur des caractères genre : � :/


---------------
Blablaté par Harko
n°2053115
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 01:32:49  profilanswer
 

Bon j'ai rajoute des mysql_query("SET NAMES UTF8" ) avant chaque requete dans le PHP en plus d'avoir tout convertis dans la base.
 
j'ai suivi ce qui était indiqué ici :  
http://www.aquatz.com/Encodage-con [...] L_a36.html
 
Mais j'avoue franchement, pour l'instant j'y vais en mode crado en plusieurs étapes pour le site, je dois livrer un truc dans 2 semaines et je ocnvertis à l'arrache et les trucs qui m'emmerde je les corrige à la bite et au couteau.  
Le site que je suis en train de corriger est l'exemple même de ce qu'il ne faut pas faire en HTML/JS et surtout PHP. Je corrige des tonnes de merdes.


---------------
Blablaté par Harko
n°2053122
Profil sup​primé
Posté le 31-01-2011 à 07:40:48  answer
 

Me semblait qu'il y avait moyen de mettre "SET NAMES UTF8" en param pour que ça le fasse automatiquement à chaque requête  [:transparency]

n°2053127
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 08:23:56  profilanswer
 

sur la base  ? j'a rien trouvé, si tu sais ou je suis preneur :o


---------------
Blablaté par Harko
n°2053128
Profil sup​primé
Posté le 31-01-2011 à 08:35:03  answer
 

J'ai rien trouvé non plus, pardon pour le faux espoir  :D

mood
Publicité
Posté le 31-01-2011 à 08:35:03  profilanswer
 

n°2053130
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 08:41:58  profilanswer
 

putain je retrouve des pans entier de code dégueulasse [:tinostar]
Les requetes sql même pas échappées, les login/pass en clair :/
des globals partout, nan mais pourquoi j'ai accepté ça [:tinostar]


Message édité par gatsu35 le 31-01-2011 à 08:42:16

---------------
Blablaté par Harko
n°2053134
Profil sup​primé
Posté le 31-01-2011 à 09:06:15  answer
 

Les globals c'est dégueu à la base ou c'est à utiliser à bon escient ?

n°2053136
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 09:26:21  profilanswer
 

C'est dégueulasse, car tu ne fais pas la différence entre du get et du post et même les variables que tu déclares dans ton code peuvent être overwrité par une global.
Enfin bref c'est de la merde les globals, mais je suis obligé de les laisser pour le moment :(
PHP mais pourquoi tu as laissé des milliers de portes ouvertes pour faire du code dégueulasse ?


---------------
Blablaté par Harko
n°2053139
Profil sup​primé
Posté le 31-01-2011 à 09:51:44  answer
 

D'acc, c'était juste pour savoir en fait  :jap:

n°2053141
esox_ch
Posté le 31-01-2011 à 10:06:53  profilanswer
 

Il y a encore des codes qui marchent avec register_global à on :??:
ça va être la fête du slip quand les serveurs vont commencer à mettre PHP6 :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2053147
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 10:27:43  profilanswer
 

Ben les vieux site de 2006 :/
je suis tombé sur un site merdique et comme le temps est assez compte, je ne change que la charte, c'est contre mes principes de laisser du code de merde, mais je n'ai pas non plus 2 mois pour tout changer.
 
Ya des requetes SQL partout au milieu des pages, du code de merde partout, du JS pour faire des redirections au lieu d'un header:location.
 
Enfin bref, c'est codé par un stagiaire.


---------------
Blablaté par Harko
n°2053149
esox_ch
Posté le 31-01-2011 à 10:32:34  profilanswer
 

C'est pas le stagiaire qu'il faut foutre au bûcher, c'est le maître de stage ...
Ton contrat à la base c'est juste de leur changer la charte? C'est risqué de prendre un contrat comme ça sans savoir si c'est MVC ou pas derrière (et là, qqch me dit que ça l'est pas :D)... Comment tu gères la négociation avec le client?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2053151
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 10:50:31  profilanswer
 

Nop c'est pour un pote qui fait une fleur à quelqu'un de sa famille
 
C'est un site de 200 pages à peu prêts ya un truc un peu générique basé sur des templates, mais c'est mega merdique :D
et puis toute la partie dynamique, accès base and co a été faite à la bite et au couteau.
 
Et on a décidé de faire le site en 2 temps au vue des délais, car refaire tous les contenus pour les foutre dans un CMS c'est un peu long :D
 
Donc pour le moment search and replace massif, même à coup de regexp :D, ça marche bien [:petrus75]


---------------
Blablaté par Harko
n°2053158
esox_ch
Posté le 31-01-2011 à 11:09:23  profilanswer
 

Ah ... les projets faits pour faire une fleur c'est toujours les pires ..
Tu peux pas demander des k€ parce que c'est pour un pote, tu peux pas lui dire que son truc c'est de la merde pour la même raison et tu peux pas l'envoyer se faire foutre :D
Quasiment à chaque fois chez moi ça s'est fini avec une grosse engueulade .. Heureux de plus être confronté à ce genre de trucs :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2053217
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 14:46:03  profilanswer
 

esox_ch a écrit :

Ah ... les projets faits pour faire une fleur c'est toujours les pires ..
Tu peux pas demander des k€ parce que c'est pour un pote, tu peux pas lui dire que son truc c'est de la merde pour la même raison et tu peux pas l'envoyer se faire foutre :D
Quasiment à chaque fois chez moi ça s'est fini avec une grosse engueulade .. Heureux de plus être confronté à ce genre de trucs :D


C'est un site qui a été fait par une société et la personne veut se débarasser de la société en question. Je lui ai bien dit que c'était de la belle merde :D
Comme il paye bien et qu'il peut me rapporter de beaux projets, je lui fait une fleur :D


Message édité par gatsu35 le 31-01-2011 à 14:46:24

---------------
Blablaté par Harko
n°2053233
smaragdus
whores, drugs & J.S. Bach
Posté le 31-01-2011 à 15:14:50  profilanswer
 

y a une méthode pour convertir qui marche pas trop mal c'est  
* faire un dump (en iso donc)
* convertir le fichier en UTF8 avec iconv
* quelque regex pour replacer les iso par du set utf8 collate utf8_general_ci;
* ré-importer

n°2053244
Profil sup​primé
Posté le 31-01-2011 à 16:05:36  answer
 

esox_ch a écrit :

Il y a encore des codes qui marchent avec register_global à on :??:
ça va être la fête du slip quand les serveurs vont commencer à mettre PHP6 :D


 
On m'avait conseillé ça à une époque  :D

n°2053246
smaragdus
whores, drugs & J.S. Bach
Posté le 31-01-2011 à 16:10:34  profilanswer
 

Putain le register_global, ici on n'a réussi à tout purger dans la boite sauf un dernier projet dont j'ai encore la charge.  
 
Je fais tout pour que ce projet meure mais le client y semble attaché, faut dire aussi que c'est son intranet [:cupra]

n°2053276
rufo
Pas me confondre avec Lycos!
Posté le 31-01-2011 à 17:22:05  profilanswer
 

t'as essayé ça ?  
mysql --default-character-set=utf8 base_de_donnees -h host -u user -ppass < fichier_dump


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2053279
gatsu35
Blablaté par Harko
Posté le 31-01-2011 à 17:41:04  profilanswer
 

le problème est réglé les mecs hein :o
et c'était un dump en ISO-8859-1, je l'ai converti en UTF-8, j'ai importé la base en UTF-8 et je foutu des mysql_query("SET NAMES UTF-8" ) un peu partout et basta.
J'ai même pas envie de me faire chier avec ce site, sachant qu'on va le passer sous CMS dans 2 mois.

 

Pour le moment on doit juste tomber une version statique à l'arrache.


Message édité par gatsu35 le 31-01-2011 à 17:41:25

---------------
Blablaté par Harko
n°2053358
Alisteroid
Posté le 01-02-2011 à 10:47:37  profilanswer
 

Ca sert à rien de mettre des mysql_query("SET NAMES UTF-8" ) partout, suffit de le faire 1 fois juste après la connexion à la base.
 
Si tu utilises une classe/fonction pour te connecter et effectuer tes requêtes, tu dois pouvoir facilement factoriser ça :o
 
:hello:

n°2053379
gatsu35
Blablaté par Harko
Posté le 01-02-2011 à 11:48:57  profilanswer
 

Alisteroid a écrit :

Ca sert à rien de mettre des mysql_query("SET NAMES UTF-8" ) partout, suffit de le faire 1 fois juste après la connexion à la base.
 
Si tu utilises une classe/fonction pour te connecter et effectuer tes requêtes, tu dois pouvoir facilement factoriser ça :o
 
:hello:


Si j'avais codé le site ça serait le cas, il y aurai même que 2 fichiers PHP et tout le reste en XSL.
Mais je suis sur un vieux site où tout a été fait à la bite et au couteau :o, donc ya 60 requetes au moins sur le site :o


---------------
Blablaté par Harko
n°2058348
avantgarde
Allez partout le monde precher
Posté le 21-02-2011 à 13:16:47  profilanswer
 

Yo !  
Qu'est ce que t'as à dire des gros à chaque phrase comme ça ?
Y a ma meuf qui vient parfois faire des recherches sur ce site, et je voudrais pas que ton langage choque
son âme sensible !
Capitch ? :heink:

n°2058519
gatsu35
Blablaté par Harko
Posté le 21-02-2011 à 18:52:56  profilanswer
 

avantgarde a écrit :

Yo !
Qu'est ce que t'as à dire des gros à chaque phrase comme ça ?
Y a ma meuf qui vient parfois faire des recherches sur ce site, et je voudrais pas que ton langage choque
son âme sensible !
Capitch ? :heink:


Mais gamin, qu'est ce que tu viens foutre sur ce topic, et où est-ce que tu vois que je dis des "gros" ?
Et qu'est-ce qui te permet de me faire la morale ?
Edit : Et j'en ai rien à branler de ta meuf, si elle vient sur ce forum, elle vient pas sur les topics où je suis un point c'est tout !!!

 


Message édité par gatsu35 le 21-02-2011 à 23:38:39

---------------
Blablaté par Harko
n°2058620
stealth35
Posté le 22-02-2011 à 10:20:18  profilanswer
 

laisse tomber c'est un spam, j'ai vu d'autre message du style ;)
sinon si t'as possibilité sur ton site fait plutôt un mysql_set_charset

n°2058638
MEI
|DarthPingoo(tm)|
Posté le 22-02-2011 à 11:04:15  profilanswer
 

gatsu35 a écrit :

C'est dégueulasse, car tu ne fais pas la différence entre du get et du post et même les variables que tu déclares dans ton code peuvent être overwrité par une global.
Enfin bref c'est de la merde les globals, mais je suis obligé de les laisser pour le moment :(
PHP mais pourquoi tu as laissé des milliers de portes ouvertes pour faire du code dégueulasse ?


Si tu codes en PHP 5.3 et suit les recommandations et n'utilise aucun truc deprecated y'a plus vraiment de portes ouvertes... ;)
 
Les $GLOBALS peuvent avoir un intérêt... Encore faut-il les utiliser à bon escient et ne pas les confondre avec la session où un fichier de config... :o


---------------
| AMD Ryzen 7 3700X 8C/16T @ 3.6GHz - 64GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |
n°2058654
gatsu35
Blablaté par Harko
Posté le 22-02-2011 à 11:18:38  profilanswer
 

tu ne m'apprends rien, j'ai juste pas envie de perdre mon temps à refaire du code de merde, car ce n'est pas le but


Message édité par gatsu35 le 22-02-2011 à 11:22:02

---------------
Blablaté par Harko
n°2058659
MEI
|DarthPingoo(tm)|
Posté le 22-02-2011 à 11:21:19  profilanswer
 

Bah si ton but c'était d'en faire le moins possible, la vrai solution c'était simplement de faire un header XHTML correct en notifiant le vrai charset de la page... :spamafote:
 
Parce que bon, je ne vois pas le soucis d'être en latin-1 si c'est temporaire et que le contenu reste du latin-1 à la base... :??:


---------------
| AMD Ryzen 7 3700X 8C/16T @ 3.6GHz - 64GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |
n°2058662
gatsu35
Blablaté par Harko
Posté le 22-02-2011 à 11:22:39  profilanswer
 

MEI a écrit :

Bah si ton but c'était d'en faire le moins possible, la vrai solution c'était simplement de faire un header XHTML correct en notifiant le vrai charset de la page... :spamafote:
 
Parce que bon, je ne vois pas le soucis d'être en latin-1 si c'est temporaire et que le contenu reste du latin-1 à la base... :??:


nop déclarer le charst ne suffit pas, il faut encoder les fichiers ainsi que les data de la base :/


---------------
Blablaté par Harko
n°2058664
gatsu35
Blablaté par Harko
Posté le 22-02-2011 à 11:23:41  profilanswer
 

MEI a écrit :

Bah si ton but c'était d'en faire le moins possible, la vrai solution c'était simplement de faire un header XHTML correct en notifiant le vrai charset de la page... :spamafote:
 
Parce que bon, je ne vois pas le soucis d'être en latin-1 si c'est temporaire et que le contenu reste du latin-1 à la base... :??:


nop déclarer le charst ne suffit pas, il faut encoder les fichiers ainsi que les data de la base :/
 
Le site va être repassé dans un CMS complet dans quelques mois, mais là c'est juste qu'il doit être propre (en gardant les contenus) avec sa nouvelle charte avant mi-mars. Et ensuite on le passe dans un CMS avec retapage de tous les contenus (qui sont eux aussi dégueulasses)


---------------
Blablaté par Harko
n°2058667
rufo
Pas me confondre avec Lycos!
Posté le 22-02-2011 à 11:24:13  profilanswer
 

Tout à fait, si le charset en base ou celui utilisé durant la connexion entre mysql et le navigateur est pas le bon, mettre juste un charset dans le header du html ne suffit pas.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2058674
MEI
|DarthPingoo(tm)|
Posté le 22-02-2011 à 11:32:02  profilanswer
 

J'ai lu la doc, en 2 min, et en fait il suffisait de faire :

Code :
  1. mysqli::set_charset($charset); // si MySQLi valable pour tout le temps
  2. // ou
  3. mysql_set_charset($charset); // après cnx si MySQL


:??:
 
Je me disais bien que MySQL devait avoir une fonction pour choisir le charset client...


---------------
| AMD Ryzen 7 3700X 8C/16T @ 3.6GHz - 64GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |
n°2058687
gatsu35
Blablaté par Harko
Posté le 22-02-2011 à 12:10:48  profilanswer
 

j'ai fait un set_names d'apres ce que j'avais lu sur le net et avant la requete, et aussi passer la base en utf-8, ce qui est mieu


---------------
Blablaté par Harko
n°2058710
MEI
|DarthPingoo(tm)|
Posté le 22-02-2011 à 13:01:14  profilanswer
 

gatsu35 a écrit :

j'ai fait un set_names d'apres ce que j'avais lu sur le net et avant la requete, et aussi passer la base en utf-8, ce qui est mieu


cf. : http://php.net/manual/fr/function. [...] harset.php

Citation :


Note:
 
Cette fonction est la meilleure façon de modifier le jeu de caractères. Il n'est pas recommandé d'utiliser la fonction mysql_query() avec une requête du type SET NAMES .. pour cela.



---------------
| AMD Ryzen 7 3700X 8C/16T @ 3.6GHz - 64GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |
n°2058718
stealth35
Posté le 22-02-2011 à 13:18:08  profilanswer
 

MEI a écrit :

J'ai lu la doc, en 2 min, et en fait il suffisait de faire :

Code :
  1. mysqli::set_charset($charset); // si MySQLi valable pour tout le temps
  2. // ou
  3. mysql_set_charset($charset); // après cnx si MySQL


:??:
 
Je me disais bien que MySQL devait avoir une fonction pour choisir le charset client...


 
http://forum.hardware.fr/hfr/Progr [...] m#t2058620  ;)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  vieux site avec base en ISO-8859-1 ou windows-1252 vers UTF-8

 

Sujets relatifs
Récupération et utilisation des menus windows en JAVAbesoin d'avis critiques pour mon site web
redirection auto de mondomaine.tld vers www.mondomaine.tldScript ou programme pour automatiser la gestion de mon site
[c++] utiliser caméra Smartphone Windows Mobile 6indiquer "site en construction" sur mon site
Mysql 5/SQLServer - Cherche grosse base de donnéesDonnez votre avis sur le design de mon site
[Ada] [Résolu] Problème d'encodage de caractères avec Ada sur Windowsprobleme avec mon site internet sous firefox
Plus de sujets relatifs à : vieux site avec base en ISO-8859-1 ou windows-1252 vers UTF-8


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR