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

Langage Java Discussion :

[String] Problème de limitation de caractères


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut [String] Problème de limitation de caractères
    Bonjour,

    Je ne sais pas si c'est vraiment dans le bon forum que je poste, mais comme le problème fait intervenir plusieurs choses ...

    Alors voilà, j'ai une JTextArea limitée à 1000 caractère et ce qui est inséré dans ce textarea est inséré dans un DB de gestion documentaire Oracle/IFS. Tout se passe bien tant que je n'insère pas de caractères accentués, la limitation marche bien, mais par contre quand j'écris avec des caractères spéciaux, j'ai bien la limitation à 1000 caractères du côté java, mais ça foire du côté Oracle (Inserted value too large).

    Y a-t-il moyen de limiter le nombre de caracères en java en comptant le nombre de bytes réels qui sont insérés dans Oracle? J'ai essayé en me basant avec .getBytes().length au lieu de .getLength() mais c'est la même chose...

    Quelqu'un a une idée autre que d'augementer la taille de la colonne dans la DB?

    Merci d'avance...

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    tu veux dire que coté java quand tu demandes getLength() il retourne bien 1000 et quand tu fais l'insert , l'exeption oracle remonte alors que la colonne est de 1000 ?

  3. #3
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut Re: Problème de limitation de caractères
    Citation Envoyé par zegreg
    Quelqu'un a une idée autre que d'augementer la taille de la colonne dans la DB?
    Diminuer la taille côté java

    Sinon je crois que la solution c'est de changer l'encoding des données dans la base pour plus que les accents prennent 2 caractères au lieu d'un.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    Quelle est encoding de la base ? peut etre que certain carac. accentué prennent plus de place ?

    Essaie de compter comme ça :

    String buf = new String(myText, "<encodingDB>");

    int len = bug.getBytes().length
    ou

    byte [] buf = myText.getBytes("<encodingDB>");

    int len = buf.length;


    suis pas sûr du tout

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par ohnerom
    tu veux dire que coté java quand tu demandes getLength() il retourne bien 1000 et quand tu fais l'insert , l'exeption oracle remonte alors que la colonne est de 1000 ?
    Oui c'est bien ça...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par ohnerom
    Quelle est encoding de la base ? peut etre que certain carac. accentué prennent plus de place ?

    Essaie de compter comme ça :

    String buf = new String(myText, "<encodingDB>");

    int len = bug.getBytes().length
    ou

    byte [] buf = myText.getBytes("<encodingDB>");

    int len = buf.length;


    suis pas sûr du tout
    Ok je vais voir si ça peut marcher par par l'encoding...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut Re: Problème de limitation de caractères
    Citation Envoyé par natha
    Citation Envoyé par zegreg
    Quelqu'un a une idée autre que d'augementer la taille de la colonne dans la DB?
    Diminuer la taille côté java

    Sinon je crois que la solution c'est de changer l'encoding des données dans la base pour plus que les accents prennent 2 caractères au lieu d'un.
    Malheureusement il y a un existant ;-) et je ne peux pas changer l'encoding de la DB... Je vais regarder en chipotant avec l'encoding du côté java

    Merci

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Quel est le type que tu utilise dans ta base et qu'elle est elle ?
    Le type utilisé supporte apparement les caractères sur 8bits seulement alors qu'en Java nous sommes sur 16.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    La db est en UTF-8 ...

    Sinon ça fonctionne avec le getBytes("UTF-8"), ça retourne bien le bon nombre de caracères.


    Un grand merci à tout le monde

  10. #10
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    Ben , il me semblait justement que en JAVA , les String etaient de toute facon en UTF8, donc je passais que la base ne l'était pas.

    bon ,je vais devoir relire quelques bases ...

  11. #11
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par ohnerom
    Ben , il me semblait justement que en JAVA , les String etaient de toute facon en UTF8, donc je passais que la base ne l'était pas.
    En Java les strings sont en Unicode.

  12. #12
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    merci , j'avais bien retrouvé l'info , je vais essayé de m'en souvenir plus d'un jour c'ette fois

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

Discussions similaires

  1. lacune string et caractèes speciaux !
    Par kanzarih dans le forum Langage
    Réponses: 3
    Dernier message: 04/02/2007, 19h49
  2. [VBA E] String limité à 200 caractères
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/08/2006, 12h01
  3. Variables string limité à 255 caractères?
    Par krfa1 dans le forum Access
    Réponses: 7
    Dernier message: 27/01/2006, 16h29
  4. [String] Taille limite ?
    Par Clorish dans le forum Langage
    Réponses: 2
    Dernier message: 13/07/2005, 12h50
  5. [Debutant(e)]limitation du String 65536 char
    Par srane dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 29/05/2004, 00h42

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