IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Site en UTF-8 + enregistrements dans la db


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Points : 71
    Points
    71
    Par défaut [Conception] Site en UTF-8 + enregistrements dans la db
    Bonjour à tous,
    j'aimerais savoir si en utf-8, on stocke bien les infos dans la base de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sets en ligne - Rubrique Téléchargements
    Ou bien laisse t on les accents, ... ?

    Pourrait-on m'en dire plus sur l'utf8 svp ???

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    non les infos ne sont pas stockées comme cela. Ca, c'est des entités HTML et tu peux le faire avec htmlentities(). L'UTF-8 est une version d'Unicode qui a pour méthode d'attribuer un code à chaque caractère et que ce code soit le même sur n'importe quelle plateforme.
    [Edit]Pour être un peu plus précis, le choix de l'encodage de ta BDD va définir la table des codes de caractères à utiliser pour désigner chaque caractère dans la structure interne de la base (donc en gros dans les fichiers de stockage de la base <- ca c'est à vérifier ^^)[/Edit]

  3. #3
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    l'UTF-8 est un encodage, un jeu de caractère, comme l'ISO-8859-1 par exemple.

    il s'agit d'une correspondance entre une valeur héxadécimal et un caractère. la particularité de l'UTF-8 et qu'un caractère est stocké sur un nombre variable d'octets (1 à 4).

    pour éviter les problèmes d'encoding, je te conseillerais de toujours indiquer les caractères spéciaux à l'aide des entitées HTML

    De nombreux jeux de caractères existent, et comme leur gestion n'est pas véritablement très explicite au niveau des Systèmes d'Exploitation et des applications, c'est très souvent le bazar...donc pour le stockage de texte destiné à être employé dans du HTML, je te conseille d'utiliser les entitées, comme ça, quelque soit le jeu de caractère utilisé, il n'y aura pas de risques...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Points : 71
    Points
    71
    Par défaut
    Voila deux réponses qui se contredisent !!!

    Perso, j'ai essayé d'encoder dans la base ( charset utf-8 ) des caractères genre €, etc, ... et quand je veux les récuperer, ils ne passent pas, alors qu'en encodant les entités ca marche nickel, mais si je veux utiliser la base pour une autre applic je pense que j aurais des problemes.

    Sujet à discuter !

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    non, nos réponses ne se contredisent pas.

    si tu stockes un é dans une BDD, ça sera un é que la table soit en UTF-8, en ISO-8859-15 ou en US-ASCII...

    cependant, pour stocker du texte destiné à l'utilisation sur une page HTML, je te déconseille d'utiliser les caractères spéciaux en eux-même, et de leur préférer leurs entitées HTML.

    si à la sortie tu as un problème avec les caractères spéciaux, c'est parce qu'il y a un point qui manipule tes caractères et qui n'est pas en UTF-8 (le navigateur, PHP gère les chaînes hors UTF-8, le module reliant PHP à MySQL, etc...) ces points sont nombreux, et pas toujours facile d'accès... voilà pourquoi je te conseille pour le moment de laisser tomber les problèmes d'encoding et de faire ce qu'il faut pour passer outre, c'est à dire utiliser les entitées HTML, et éviter les caractères spéciaux.

    ensuite, ceci n'est possible que dans le cas d'une utilisation pour le Web et le langage HTML.

    pour les autres cas d'utilisation de ta BDD, il te faudra être sûr que tous les points manipulant tes chaînes de caractères soient bien réglés sur le même encoding (quel qu'il soit)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Points : 71
    Points
    71
    Par défaut
    J'utilise ma bd à des fin web ( HTML )

    Je peux donc laisser mes données de la manière décrite dans mon premier post, si j'ai bien compris.

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    oui, tant que c'est pour intégrer à du HTML, je te conseil fortement d'utiliser les entités HTML quelque soit l'encoding.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/01/2009, 11h52
  2. [Conception] Repérer un nouvel enregistrement dans une base de données
    Par MikeV dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/08/2007, 17h49
  3. [Conception]Nombre Maxi d'enregistrements dans une table
    Par del__k dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/04/2007, 12h57
  4. [Conception] Modification d'enregistrement dans une table
    Par Volixium dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/09/2006, 13h48
  5. [Conception] probleme d'enregistrement dans une table
    Par k_boy dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 29/05/2006, 00h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo