#31 2007-10-08 13:56:52

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utf-8

rub a écrit:

En fait pour résumé les différents charsets, nous avons:
  o HTML charset: encodage utilisé pour restituer les infos au niveau du browser
  o PHP charset: encodage utilisé pour les méthodes et les fichiers php
  o DB charset: encodage utilisé pour communiquer avec la base de données
  o MySQL Charset: encodage utilisé pour stoker les données
  o IPTC charset: encodage des photos

Exact, sauf que PHP charset doit etre toujours iso-8859-1, sauf les valeurs de $lang (pas les cles)

rub a écrit:

o HTML charset et PHP charset sont identiques

Non. PHP charset est toujours en ISO-8859-1, a l'exception des valeurs de lang (qui seront eventuellement converties par pwg)

rub a écrit:

o MySQL Charset va dépendre du DB Charset utilisé lors de l'installation avec conversion implicite entre DB charset et MySQL charset.
  o PHP charset et DB charset seront identiques:
     > UTF8 si nouvelle installation
     > ISO-8859-1 si upgrade
C'est bien ca?
C'est à dire tout en UTF-8 ou en ISO-8859-1?

oui. il y a peut etre moyen de faire un upgrade automatique a utf-8 des tables et charset si par exemple toutes les langues des admins sont en iso-8859-1 et les tables MySql sont soit latin1, soit utf-8 ... Mais on peut faire cet upgrade automatique seulement pendant l'upgrade (apres l'encodage de la langue disparait de #user_infos.language)
Vous achetez ???

Ce qui m'embête c'est l'encodage du PHP charset en UTF8 ou IS0-8859-1.
Car, il va falloir suivant le cas ré-encoder les fichiers de traduction.

l'anglais est 'neutre', cad le meme encodage pour iso-8859-x ou utf-8. par consequent le repertoire anglais va se nommer en_GB
on peut livrer une pwg soit avec fr_FR.iso-8859-1, soit avec fr_FR.utf-8. ca va toujours marcher (tant que PWG_CHARSET est un des 2), mais ca sera + performant de livrer les 2.

Cela impliquera sûrement de devoir changer les versions minimales de PHP et MySQL (pour que les conversions se passent sans soucis)!

pas vraiment. les conversions iso-8859-1 <-> utf-8 peuvent se faire avec utf8_encode / utf8_decode sur toutes les versions de php . toute autre conversion demande soit iconv soit mb_convert_encoding.

Le seul truc, c'est lors de la création de tables ou de colonnes de le faire avec le MySQL charset!
Non?
Me trompes-je?

exact. c'est prevu

PS: Je ne suis étendu sur les IPTC , car je ne sais si on peut savoir le charset utilisé dans la photo, etc.
Ce qui est sur c'est les données IPTC doivent être ré-encodées dans le PHP charset, non?

pas PHP charset, mais PWG_CHARSET. qu'on mette la description d;une photo a partir d'un navigateur ou IPTC, ca doit generer exactement la meme requete.

Hors ligne

#32 2007-10-08 14:47:04

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

rvelices a écrit:

rub a écrit:

En fait pour résumé les différents charsets, nous avons:
  o HTML charset: encodage utilisé pour restituer les infos au niveau du browser
  o PHP charset: encodage utilisé pour les méthodes et les fichiers php
  o DB charset: encodage utilisé pour communiquer avec la base de données
  o MySQL Charset: encodage utilisé pour stoker les données
  o IPTC charset: encodage des photos

Exact, sauf que PHP charset doit etre toujours iso-8859-1, sauf les valeurs de $lang (pas les cles)

PHP charset dépends donc de l'installation de PHP, c'est à dire du provider?  (en chine,on n'aura pas du is0-8859-1, j'espère!)
Donc, cela veut que PWG_CHARSET corresong au HTML charset?

rvelices a écrit:

oui. il y a peut etre moyen de faire un upgrade automatique a utf-8 des tables et charset si par exemple toutes les langues des admins sont en iso-8859-1 et les tables MySql sont soit latin1, soit utf-8 ... Mais on peut faire cet upgrade automatique seulement pendant l'upgrade (apres l'encodage de la langue disparait de #user_infos.language)
Vous achetez ???

Vendu!


rvelices a écrit:

Ce qui m'embête c'est l'encodage du PHP charset en UTF8 ou IS0-8859-1.
Car, il va falloir suivant le cas ré-encoder les fichiers de traduction.

l'anglais est 'neutre', cad le meme encodage pour iso-8859-x ou utf-8. par consequent le repertoire anglais va se nommer en_GB
on peut livrer une pwg soit avec fr_FR.iso-8859-1, soit avec fr_FR.utf-8. ca va toujours marcher (tant que PWG_CHARSET est un des 2), mais ca sera + performant de livrer les 2.

Pourquoi, s'embêter à livrer 2 versions autant tout livrer en UTF8.
Et pas conséquent, générer en HTML que de l'UTF8.


rvelices a écrit:

Ce qui m'embête c'est l'encodage du PHP charset en UTF8 ou IS0-8859-1.
Car, il va falloir suivant le cas ré-encoder les fichiers de traduction.

l'anglais est 'neutre', cad le meme encodage pour iso-8859-x ou utf-8. par consequent le repertoire anglais va se nommer en_GB
on peut livrer une pwg soit avec fr_FR.iso-8859-1, soit avec fr_FR.utf-8. ca va toujours marcher (tant que PWG_CHARSET est un des 2), mais ca sera + performant de livrer les 2.

Par contre, pour le tables si on fait le upgrade auto en UTF8, il faut MySql > 4.1, c'est ca?

rvelices a écrit:

PS: Je ne suis étendu sur les IPTC , car je ne sais si on peut savoir le charset utilisé dans la photo, etc.
Ce qui est sur c'est les données IPTC doivent être ré-encodées dans le PHP charset, non?

pas PHP charset, mais PWG_CHARSET. qu'on mette la description d;une photo a partir d'un navigateur ou IPTC, ca doit generer exactement la meme requete.

Oui la même requête.

Mais cela implique aussi des conversions (IPTC en ISO-8859-1 si  l'IPTC peut être en UTF-8! C'est possible IPTC en UTF8)?.


Ca me chagrine cette histoire de PHP charset en ISO-8859-1.
Cela veut dire les opérations sur les chaînes de caractères se font en ISO-8859-1 et pas en UTF-8, c'est ca?
Ca pose pas de problèmes?

Cela veut dire aussi que si je veux une PWG en chinois chez Free, je ne pourrais avoir une galerie carré:
  o pas trop de soucis, au niveau des descriptions, commentaires, etc.
  o mais ca sera la cata avec les IPTC
  o et les fonctions de chaines, elles vont être OK?

Hors ligne

#33 2007-10-08 14:58:03

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utf-8

rub a écrit:

Ca me chagrine cette histoire de PHP charset en ISO-8859-1.
Cela veut dire les opérations sur les chaînes de caractères se font en ISO-8859-1 et pas en UTF-8, c'est ca?
Ca pose pas de problèmes?

non, non ca n'a rien a voir... les valeurs que la base nous retourne sont stockes dans des variables. le contenu sera dans PWG_CHARSET, pas forcement iso-8859-1. moi je pensais que t'as defini php charset comme "encodage utilisé pour les méthodes et les fichiers php". donc pour moi ca veut juste dire qu'appart lang[...] on n'a pas le droit d'avoir d'accents dans le code php (comme c'etait le cas avec str2url).

Hors ligne

#34 2007-10-08 15:35:09

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

rvelices a écrit:

rub a écrit:

Ca me chagrine cette histoire de PHP charset en ISO-8859-1.
Cela veut dire les opérations sur les chaînes de caractères se font en ISO-8859-1 et pas en UTF-8, c'est ca?
Ca pose pas de problèmes?

non, non ca n'a rien a voir... les valeurs que la base nous retourne sont stockes dans des variables. le contenu sera dans PWG_CHARSET, pas forcement iso-8859-1. moi je pensais que t'as defini php charset comme "encodage utilisé pour les méthodes et les fichiers php". donc pour moi ca veut juste dire qu'appart lang[...] on n'a pas le droit d'avoir d'accents dans le code php (comme c'etait le cas avec str2url).

Ha ok!

Pour moi, je voulais dire que PWG_CHARSET était le codage des variables/données dans PHP.
Le codage des fichier étant en ASCII-US/7-bits sauf pour le fichier de langues (php ou html).


Donc, vu qu'on va avoir un upgrade auto, autant dire que du début jusqu'à la fin, on utilise l'UFT-8. (Base de données, Php, fichiers de traductions, HTML)
Et on ne s'embete plus à mettre en paramètre des PWG_CHARSET ou DB_CHARSET.

Full UTF-8, moi, je suis pour à 300%

Upgrade + Full UTF-8 + UTF-8 obligatoire = un bon choix pour moi!

Hors ligne

#35 2007-10-08 16:49:35

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: Utf-8

J'approuve parfaitement l'avis de rub : on passe en full utf-8 partout, exit l'iso-8859-x.

rvelices: la base de ma galerie perso croit que les données sont en iso, mais c'est faux. Mais ce n'est pas vraiment important puisque je ne demande pas à MySQL de traiter mes chaînes de caractères, juste de les stocker, L'important c'est que PHP sache qu'il a envoyé les données en utf-8, que le charset HTML soit utf-8 pour que les formulaires envoient de l'utf-8 et que le navigateur comprenne qu'il faut afficher en utf-8.

Il n'y a aucune régression à imposer utf-8 en remplacement de la multitude d'encoding possible, alors profitons-en.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#36 2007-10-08 18:16:03

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utf-8

z0rglub a écrit:

J'approuve parfaitement l'avis de rub : on passe en full utf-8 partout, exit l'iso-8859-x.

rvelices: la base de ma galerie perso croit que les données sont en iso, mais c'est faux. Mais ce n'est pas vraiment important puisque je ne demande pas à MySQL de traiter mes chaînes de caractères, juste de les stocker, L'important c'est que PHP sache qu'il a envoyé les données en utf-8, que le charset HTML soit utf-8 pour que les formulaires envoient de l'utf-8 et que le navigateur comprenne qu'il faut afficher en utf-8.

oui mais si l'upgrade passe tout en utf-8 alors je vais appeler ALTER TABLE x CONVERT TO CHARACTER SET utf8 pour chacune des tables... et les accents de ta galerie partent en fumee... si ca t'embete pas, pour moi c'est bon ...

Hors ligne

#37 2007-10-08 18:26:11

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

rvelices a écrit:

z0rglub a écrit:

J'approuve parfaitement l'avis de rub : on passe en full utf-8 partout, exit l'iso-8859-x.

rvelices: la base de ma galerie perso croit que les données sont en iso, mais c'est faux. Mais ce n'est pas vraiment important puisque je ne demande pas à MySQL de traiter mes chaînes de caractères, juste de les stocker, L'important c'est que PHP sache qu'il a envoyé les données en utf-8, que le charset HTML soit utf-8 pour que les formulaires envoient de l'utf-8 et que le navigateur comprenne qu'il faut afficher en utf-8.

oui mais si l'upgrade passe tout en utf-8 alors je vais appeler ALTER TABLE x CONVERT TO CHARACTER SET utf8 pour chacune des tables... et les accents de ta galerie partent en fumee... si ca t'embete pas, pour moi c'est bon ...

Oui, mais avec l'upgrade automatique que tu as proposé, il n'y aura pas ce soucis!...
Ensuite, c'est vrai qu'il y aura peut-être des galeries qui ne pourront pas être converti avec ton upgrade... mais bon, le % doit être faible et les webmasters surement a même de faire la conversion (avec ou sans l'aide du forum)

Hors ligne

#38 2007-10-08 20:28:36

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utf-8

bon voila ce que je propose pour l'upgrade:
A. si MySql<4.1
  - pwg_charset 'iso-8859-1' !
B. MySql>=4.1
1. si la langue actuelle du webmaster est en iso-8859-1
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont directement converties en utf8
2. si la langue actuelle du webmaster est en utf-8
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont converties en BLOB et ensuite de BLOB a utf8
3. si la langue actuelle du webmaster est en iso-8859-2
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont converties en BLOB, ensuite de BLOB a latin2, ensuite de latin2 a utf8
4. autre cas - que dieu nous aide :-)
   - pwg_charset 'iso-8859-1' db_charset 'latin1'
   - je ne touche pas aux tables

d'accord ???

Hors ligne

#39 2007-10-08 20:33:01

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Utf-8

Il me semble que Pierrick veut MySQL 5 pour la 1.8

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#40 2007-10-08 22:34:28

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

rvelices a écrit:

bon voila ce que je propose pour l'upgrade:
A. si MySql<4.1
  - pwg_charset 'iso-8859-1' !
B. MySql>=4.1
1. si la langue actuelle du webmaster est en iso-8859-1
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont directement converties en utf8
2. si la langue actuelle du webmaster est en utf-8
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont converties en BLOB et ensuite de BLOB a utf8
3. si la langue actuelle du webmaster est en iso-8859-2
   - pwg_charset 'utf-8' db_charset 'utf8'
   - toutes les tables sont converties en BLOB, ensuite de BLOB a latin2, ensuite de latin2 a utf8
4. autre cas - que dieu nous aide :-)
   - pwg_charset 'iso-8859-1' db_charset 'latin1'
   - je ne touche pas aux tables

d'accord ???

Ok pour moi sachant qu'on aura sûrement que le B comme l'a rappelé VDigital!

Hors ligne

#41 2007-10-09 03:42:55

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Utf-8

voila revision 2127 ...
ATTENTION - FAITES UN BACKUP DE LA BASE CAR L'UPGRADE CONVERTIT LES CHARSETS DES TABLES !!!!!!!!!!!!!
ATTENTION - CETTE UPGRADE (65) N'EST PAS REVERSIBLE !!!!!!!

il manque
- le flux RSS qui utilise le charset
- la syncronisation IPTC et l'affichage IPTC ...

Dernière modification par rvelices (2007-10-09 04:08:12)

Hors ligne

#42 2007-10-09 07:47:09

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

Je suis pressé de tester ca...

Hors ligne

#43 2007-10-09 08:59:24

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Utf-8

1 upgrades to apply

=== upgrade 65
>>user_lang    fr_FR.iso-8859-1    3

>>admin_charset    iso-8859-1
>>mysql_ver    5.0.45-community-nt
< conversion    change utf8

"PWG charset migration" ended

Et "Voyons voir ce UTF-8 une œuvre remarquable de rvelices?" Exactly! Incredible! So many thanks...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#44 2007-10-09 09:35:55

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: Utf-8

rvelices a écrit:

... et les accents de ta galerie partent en fumee... si ca t'embete pas, pour moi c'est bon ...

Pas de problème. Je savais ce que je faisais en bidouillant en utf-8. Je saurai bidouiller pour conserver l'intégrité de mes données.

Par contre, pour l'upgrade.php (pas l'upgrade_feed.php) on proposera 2 options : avec et sans conversion des données en base. La conversion étant par défaut et recommandée. Ca te va ?


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#45 2007-10-09 10:08:27

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Utf-8

J'ai pas encore migré mais j'ai quand même des petites remarques:
  o get_language_filepath est garder pour compatibilité, on ne devrait pas la supprimer?
    Ou tu compter le faire par la suite en attendant qu'on s'adapte!
  o Pourquoi ne pas appeler la méthode load_language dans la méthode get_language_filepath?
  o Pourquoi ne pas utliser aussi get_default_language dans la méthode load_language (comme dans la méthode get_language_filepath)
  o Pourquoi s'embete à tester "universal language"? C'est à dire le ascii 7 bits ou l'asciiUS?
    Ce n'est pas un charset utilisé pour l'affichage des pages et on risque de ne pas s'en servir, non?
  o On devrait pas les répertoires de langue Fr et Uk en UTF-8 pour éviter les convertions à tout va?

Bravo ;-)

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact