begin process at 2010 02 10 04:11:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

Fichier UTF8


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fichier UTF8

vendredi 5 janvier 2007 à 16:23:17 | Fichier UTF8

nicompx

Bonjour,

J'ai besoin de créer un fichier UTF8 en C, comment faire?
En sachant que j'utilise les fonctions suivantes :

fichier = fopen(cName,"w");
fwrite("cTextes",1,sizeof(cTextes),fichier);
fclose(fichier);

Merci d'avances



>> NiCoMpX <<
vendredi 5 janvier 2007 à 18:57:26 | Re : Fichier UTF8

SAKingdom

Membre Club
C'est pas pour ton problème de codage UTF8 mais:

fwrite("cTextes",1,sizeof(cTextes),fichier);

sizeof(cTextes) !!!!!! cTexte n'est pas une variable. Il doit y avoir des érreurs à la compilation non? Et même si il s'agissait d'un char *, un char * vaut TOUJOURS 4 octets en 32bits car c'est un pointeur. Pour avoir la taille d'une chaine contenue dans un tableau ou pointé par un char *, on utilise strlen ou on fait sa propre fonction ou macro.
Il y a certaines exeptions où utiliser sizeof serais beaucoup plus rapide
 exemple:
char toto[] = "salut a tous";
Dans ce cas présent, toto contien exactement le bon nombre de caractère+1 (caractère de fin de chaine). On peut donc faire sizeof(toto)-1 étant donné qu'il s'agit de char (1 octet)

Sinon, on écrit la taille manuellement:
fwrite("cTextes",1,7,fichier);  ça devrais mieu fonctionner ainsi.


C++ (@++)

samedi 6 janvier 2007 à 11:10:16 | Re : Fichier UTF8

ShareVB

salut,

regarde l'api MultiByteToWideChar :
http://msdn2.microsoft.com/en-us/library/ms776413.aspx
http://www.codyx.org/snippet_ainsi-vers-utf8-vice-versa_54.aspx (dsl mais en vb6)

ShareVB
mardi 9 janvier 2007 à 16:03:40 | Re : Fichier UTF8

nicompx

Est-ce que quelqu'un à un exemple en C ???

Merci d'avance.

>> NiCoMpX <<
mardi 9 janvier 2007 à 20:28:20 | Re : Fichier UTF8

ShareVB

salut,

l'important n'est pas tant le langage mais l'ALGO et en gros, voir ce qui est passé à l'api pour tester...

sinon :
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_21439089.html
http://www.codeguru.com/forum/archive/index.php/t-231165.html
http://www.codase.com/search/call?name=MultiByteToWideChar

si j'ai 5 minutes, je traduirais le snippet sur codyx...

ShareVB
mercredi 10 janvier 2007 à 09:49:44 | Re : Fichier UTF8

nicompx

Merci, j'attend la traduction.

>> NiCoMpX <<
jeudi 11 janvier 2007 à 22:04:03 | Re : Fichier UTF8

ShareVB

salut,

je vais le mettre ici d'abord pour test :

#include <windows.h>

DWORD WToUTF8(LPWSTR wText,LPSTR szBuff,DWORD cbBuff)
{
    DWORD vSize = lstrlenW(wText);
    ZeroMemory(szBuff,cbBuff*sizeof(char));
    return WideCharToMultiByte(CP_UTF8, 0, wText, vSize, szBuff, cbBuff, NULL, NULL);
}

DWORD UTF8ToW(LPSTR wText,LPWSTR wszBuff,DWORD ccBuff)
{
    DWORD vSize = lstrlenA(wText);
    ZeroMemory(wszBuff,ccBuff*sizeof(WCHAR));
    return MultiByteToWideChar(CP_UTF8, 0, wText, vSize, wszBuff, ccBuff);
}

DWORD WToOEM(LPWSTR wText,LPSTR szBuff,DWORD cbBuff)
{
    DWORD vSize = lstrlenW(wText);
    ZeroMemory(szBuff,cbBuff*sizeof(char));
    return WideCharToMultiByte(CP_OEMCP, 0, wText, vSize, szBuff, cbBuff, NULL, NULL);
}

DWORD OEMToW(LPSTR wText,LPWSTR wszBuff,DWORD ccBuff)
{
    DWORD vSize = lstrlenA(wText);
    ZeroMemory(wszBuff,ccBuff*sizeof(WCHAR));
    return MultiByteToWideChar(CP_OEMCP, 0, wText, vSize, wszBuff, ccBuff);
}

int _tmain(int argc, _TCHAR* argv[])
{
    LPSTR sz = "EBArtSoft%20-%20éà éçڳگÚ|à?";
    char szBuff[256];
    WCHAR wszBuff[256];
    UTF8ToW(sz,wszBuff,256);
    WToOEM(wszBuff,szBuff,256);

    printf(
        "Original : %s\n"
        "LPSTR : %s\n"
        "LPWSTR : %ws\n",
        sz,
        szBuff,
        wszBuff
    );

    getchar();

    return 0;
}

ShareVB
mercredi 24 janvier 2007 à 11:42:17 | Re : Fichier UTF8

nicompx


Salut,

Merci beaucoup pour la traduction.
Ce qui m'intéresse c'est la convertion UTF8, je viens de la tester et je pense qu'il y a un problème.


>> NiCoMpX <<
jeudi 25 janvier 2007 à 10:32:46 | Re : Fichier UTF8

ShareVB

salut,

il y a un problème...il y en a peut être même plusieurs...mais lesquels :)) ...le seul problème que je vois c'est l'affichage dans la console qui effectivement ne se fait pas bien mais ca vient de la console qui est en OEM je crois...si tu mets un break point sur le printf et que tu regardes le contenu de sz, szBuff et wszBuff je pense que le résultat est correcte...

sinon détailles le problème...

ShareVB
vendredi 26 janvier 2007 à 09:48:46 | Re : Fichier UTF8

nicompx

Salut,

J'aimerais faire l'inverse, c-à-d convertire une string en UTF8.
As-tu testé la conversion d'une string en UTF8?
Quand tu regarde la différence entre une string (normale) et une string encodée en UTF8 tu remarque que chaques caractères est suivit de 0x00.

HELP HELP  !!!!!!   ;-)

Merci d'avance,


>> NiCoMpX <<

1 2

Cette discussion est classée dans : fichier, utf8, ctextes


Répondre à ce message

Sujets en rapport avec ce message

Suprimmer un fichier [ par naney ] tout d'abort un grand merci au webmaster de ce site :D car j'en avais mare de cherche un site comme vbfranc.com mais qui parler du c et du c++Je cherc copier un fichier [ par naney ] je cherche la fonction pour copier un fichier merci a celui ou a celle qui va me repondre@+ tout le monde desinstallateur [ par naney ] Je veut faire un desinstalleur mais je suis obliger de m'aitre le dessinstallateir dans le repertoire des fichier que je veut suprimmer j'ai eseaille compression et decompression d'un fichier [ par asma ] salut tt le monde , vous pouvez me filer un coup de main les gars ?? je veux une astuce pour compresser et decompresser un fichier (EN C++ evidemment Problème avec traitement de fichier (cplusplus !) [ par Sianrin ] Voila, j'explique mon problème. Pour voir un peu comment les accès au fichiers se géraient en cplusplus, je me suis mis en tête de faire un programme modification d'un fichier .exe [ par jackky ] salut je voulais savoir comment faire un fichier .exe en c++(crack) pour changer un saut dans un fichier .exeexemple00401595 7416 je 004015ADCHANGER Chui ds la doumaye!! [ par Rom1 ] Salut a vous les masters du C/C++!! Moi chui k'1 pti jeuno du C qui a commencé cette année...éh oui!Je suis en ce moment en stage, et je développe une comment faire??? [ par slim ] Bonjour!je voudrais bien savoir comment convertir un fichier texte en un fichier Access en utilisant un programme C++!j'aimerais bien encore savoir co fichiers sequenciels/turbo c++ 2.0 [ par Jbx2001 ] J'ai un probléme:j'aimerai lire un fichier contenant des caractéres et des nombres de types flottants.Dans un fichier,j'ai noté différentes coordonnée ecriture fichier txt turboC++ [ par idk ] qqun connais une fonction, qui te place le cursor, (dans un fichier),CAD qui renvoie à la ligne suivante exemple char prenom="tom"char nom="bauq" Et d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales