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

MATLAB Discussion :

Lire gros fichier en Unicode: UniHan


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lire gros fichier en Unicode: UniHan
    Dear MATLAB lovers,

    J'aime bien jouer avec les caractères chinois en hobby.

    Ainsi je voudrais ouvrir la base de donnée UniHan afin de jouer avec.

    Le problème est que cette table est encode en Unicode UTF-8.

    Quand j’essaie de lire cette table dans MATLAB, ce dernier m’embête et m'affiche n'importe quoi pour certain caractères (les accents, les Kanji ect..).

    Voici la table: http://www.unicode.org/Public/UNIDATA/Unihan.zip

    J'essaie de lire le fichier "Unihan_Readings.txt" dans ce fichier zip. Je voudrais faire trois colonnes de strings:

    -une qui comprend le code Unicode du Kanji/Hanzi
    -une qui comprends le qualificatif de l’entrée (e.g. 'kDefinition')
    -une qui comprends l’entrée (e.g. '(same as U+4E18 丘) hillock or mound')

    Avec, Notepad++, J'ai enlevé les 26 premières lignes du fichiers "Unihan_Readings.txt" (et les trois dernières)
    et je l'ai appelé le nouveau fichier tronqué: "Unihan_Readings2.txt"

    Pour info voici mon code actuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    close all
    clc
    clear all
     
    [f,msg]=fopen('Unihan_Readings2.txt','r','n','UTF-8');
    txt=fscanf(f,'%c');
    clear f
    clear msg
    LIGNES=textscan(txt,'%s %s %s' , 'delimiter', '\t','bufsize',100000095);
    Quand j'affiche : LIGNES{3}(2) il me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(same as U+4E18 ) hillock or mound'
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(same as U+4E18 丘) hillock or mound'
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 313
    Points : 52 939
    Points
    52 939
    Par défaut
    J'ai déjà répondu plusieurs fois sur le forum sur le même sujet avec des caractères en langue arabe.

    Le soucis vient du système d'exploitation, pas de MATLAB.

    1) Fermer MATLAB

    2) Sous Windows 7 : Menu "Démarrez > Panneau de configuration > Horloge, langue et région > Région et langue" puis choisir le bon format et cliquer sur Appliquer

    3) Ouvrir MATLAB, et exécuter le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid = fopen('Unihan_Readings.txt','r','n','UTF-8');
       X = textscan(fid,'%s','headerlines',26,'delimiter','\n');
    fclose(fid);
    ce qui retourne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> X{1}{2}
     
    ans =
     
    U+3400	kDefinition	(same as U+4E18 涓?) hillock or mound
    J'ai choisi Chinois simplifié, ce n'est donc pas le même idéogramme mais à toi de fouiller dans les options de Windows.

Discussions similaires

  1. lire un fichier en unicode
    Par kha_yassine dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 20/06/2007, 18h13
  2. Lire gros fichier
    Par Kornoman dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 23/02/2007, 07h38
  3. lire un fichier en Unicode=prob
    Par aptyp dans le forum C++
    Réponses: 19
    Dernier message: 10/11/2006, 13h41
  4. Peut-on lire des gros fichiers(100k) avec "TClientSocke
    Par Fred LEM dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/12/2004, 14h41
  5. Un langage pour lire, traiter et écrire de gros fichiers
    Par March' dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/04/2003, 15h26

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