Bonjour,
J'ai le code suivant ou je récupère du texte dans un fichier encodé en UTF-8 (sans BOM) sur un serveur linux que je transmet ensuite à un logiciel sous Windows avec le framework gSOAP par un fichier cgi.
Le problème est que lorsqu'il y a des accents dans un des textes du fichier, rien ne s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 int calcService::help(int lang_id, wchar_t **result) { //setlocale(LC_CTYPE, ""); FILE *pFile; char fileName[100]; [...] pFile = std::fopen (fileName, "r, ccs=<UTF-8>"); if (pFile == NULL) perror ("Error opening file"); else { *result = new wchar_t[400]; int i=0; wchar_t line[1000][400]; while(fgetws(line[i], 400, pFile)) { printf("%s", line[i]); ++i; } std::fclose (pFile); int line_size = sizeof(line); srand(time(0)); int n = random()%i; *result = line[n]; //*result = L"éàèç"; } return SOAP_OK; }
J'ai essayé de lire en mode binaire, en ajoutant "ccs=<UTF-8>", rien ne marche. Si je met simplement "*result = L"éàèç";" ça marche sans problèmes.
Le problème vient surement de l'ouverture du fichier texte ou de la lecture du contenu.
Quelqu'un a une idée?
Partager