Différence entre un code ANSI et un code Unicode !? - Programmation
Marsh Posté le 14-11-2001 à 14:28:05
Perdu !
Par defaut en C on fait de l'ASCII ou de l'ANSI...
pour l'unicode il faut utiliser des wchar_t il me semble...
l'unicode est sur 16 bits mais certain caractere peuvent necessiter plusieurs unites de 16 bits...
mais je ne suis pas specialiste de la chose...
Marsh Posté le 14-11-2001 à 14:28:25
bah l'unicode c si tu veux supporter tout un tas de caractere exotique (tes caracteres sont codes sur 2o)
le support unicode est partiels dans 95/98 et complet dans NT (si je dis pas de connerie)
Marsh Posté le 14-11-2001 à 14:29:22
BENB a écrit a écrit : Perdu ! Par defaut en C on fait de l'ASCII ou de l'ANSI... pour l'unicode il faut utiliser des wchar_t il me semble... l'unicode est sur 16 bits mais certain caractere peuvent necessiter plusieurs unites de 16 bits... mais je ne suis pas specialiste de la chose... |
en fait, le fin, c'est d'utiliser TCHAR qui est redefini suivant que tu definisse _UNICODE ou non
Marsh Posté le 14-11-2001 à 14:33:42
BENB a écrit a écrit : Perdu ! Par defaut en C on fait de l'ASCII ou de l'ANSI... pour l'unicode il faut utiliser des wchar_t il me semble... l'unicode est sur 16 bits mais certain caractere peuvent necessiter plusieurs unites de 16 bits... mais je ne suis pas specialiste de la chose... |
J'disais pas ça au hasard: je sais que le fonctions de l'API win32 existent en version Ansi, elles s'appellent comme les normale, avec A à la fin. Vu que je pensais qu'il y avait que Ansi et Unicode, j'en ai déduit que si c pas l'un, c l'autre... perdu, c vrai !
Marsh Posté le 14-11-2001 à 14:42:57
El_Gringo a écrit a écrit : J'disais pas ça au hasard: je sais que le fonctions de l'API win32 existent en version Ansi, elles s'appellent comme les normale, avec A à la fin. Vu que je pensais qu'il y avait que Ansi et Unicode, j'en ai déduit que si c pas l'un, c l'autre... perdu, c vrai ! |
celles qui ne finissent pas par A n'utilisent-elle pas de l'OEM ...
En fait il y a plusieurs standard... sans remonter a l'antiquite
1 - ASCII sur 7 bits 0->127
2 - ANSI sur 8 bits plusieurs tables suivants les pays et les claviers identique a l'ASCII de 0->127 ... utilise par le DOS entre autre...
3 - OEM je crois sous win95 et Cie... sur 8 bits tjs id a ASCII 0->127...
4 - Unicode... sur 16 bits au moins...
en fait il y a presque un systeme par type de machine et par OS
Marsh Posté le 14-11-2001 à 14:46:50
oula, merci.
Du coup, je crois que je vais arrêter d'être curieux et que j'vais recommencer à coder sans m'occuper de ça !
Marsh Posté le 14-11-2001 à 14:50:44
et tu fait comment pour les traductions de tes prog en chinois?
Marsh Posté le 14-11-2001 à 14:50:48
El_Gringo a écrit a écrit : oula, merci. Du coup, je crois que je vais arrêter d'être curieux et que j'vais recommencer à coder sans m'occuper de ça ! |
Voila et tes methodes avec un A servent a recuperer des fichier DOS utilisant des caracteres ANSI non ASCII (128->255)....
Enfin je pense...
Mais il y a des specialistes de l'unicode....
Ils viendront certainement corriger et etendre mes dires...
[edtdd]--Message édité par BENB--[/edtdd]
Marsh Posté le 14-11-2001 à 14:52:53
TheJackal a écrit a écrit : et tu fait comment pour les traductions de tes prog en chinois? |
Deja en Cyrilique, meme pour ceux qui parlent le russe, c'est pas gagne...
Marsh Posté le 14-11-2001 à 14:58:27
Au lieu de raconter n'importe quoi, vous seriez surement plus utile dans mon autre topic du moment(ou g plus (au sens +) besoin d'aide qu'ici
Allez, je vous met même un lien pour pas que vous vous fatiguiez... c pas gentil ça !?
http://forum.hardware.fr/forum2.ph [...] &owntopic=
Marsh Posté le 14-11-2001 à 15:00:46
El_Gringo a écrit a écrit : Allez, je vous met même un lien pour pas que vous vous fatiguiez... c pas gentil ça !? |
surtout que c pas interesse du tout
(sinon desole yi connais rien en DDE )
Marsh Posté le 14-11-2001 à 15:02:39
BENB a écrit a écrit : Voila et tes methodes avec un A servent a recuperer des fichier DOS utilisant des caracteres ANSI non ASCII (128->255).... Enfin je pense... Mais il y a des specialistes de l'unicode.... Ils viendront certainement corriger et etendre mes dires... |
t'appelle koi des fichiers DOS au juste?
Marsh Posté le 14-11-2001 à 15:07:34
TheJackal > Des fichiers(binaires/textes) crees a l'epoque du DOS ou de Windows 3.1 et qui contiennent des chaine de caracteres...
Gringo >
> man DDE
No manual entry for DDE.
desolee...
Marsh Posté le 14-11-2001 à 15:09:40
les A servent aussi pour des fichiers de tous les windows et ce n'est pas que pour les fichier.
pour pratiquement toutes les fonctions de l'API Win32 (qui utilise les chaines de char), il existe une version A et W.
les NT ont les deux fonctions mais pas 9x (qui ne supporte pas Unicode au passage) n'a que les A (et qq W mais tres peu)
[edtdd]--Message édité par TheJackal--[/edtdd]
Marsh Posté le 14-11-2001 à 15:12:08
BENB a écrit a écrit : TheJackal > Des fichiers(binaires/textes) crees a l'epoque du DOS ou de Windows 3.1 et qui contiennent des chaine de caracteres... Gringo > > man DDE No manual entry for DDE. desolee... |
Forcément, g oublié de te dire, mais DDE c un mode de communication interprocess... sous windows, seul os digne de ce nom !
Marsh Posté le 14-11-2001 à 15:12:27
TheJackal> 1-je ne suis pas absolument sure...
2- les fonctions avec un A servent a manipuler les chaines issues de ces fichiers. pas uniquement a les lires...
Marsh Posté le 14-11-2001 à 15:13:55
BENB a écrit a écrit : Voila et tes methodes avec un A servent a recuperer des fichier DOS utilisant des caracteres ANSI non ASCII (128->255).... Enfin je pense... Mais il y a des specialistes de l'unicode.... Ils viendront certainement corriger et etendre mes dires... |
je ne suis pas spécialiste non plus ... je regarde les sources
par ex pour un simple textout :
#ifdef UNICODE
#define TextOut TextOutW
#else
#define TextOut TextOutA
#endif // !UNICODE
WINGDIAPI BOOL WINAPI TextOutA(HDC, int, int, LPCSTR, int);
WINGDIAPI BOOL WINAPI TextOutW(HDC, int, int, LPCWSTR, int);
la version ...A est la version ASCII, la version ...W (pour Wide je suppose) est la version unicode. sous 98/me, en rajoutant un #define UNICODE dans le projet, on se fait jeter à l'éxécution ou à la compil avec un message 'winnt only'.
ce qui n'empêche pas du tout d'utiliser les fonctions ...W . un TextOutW(dc, x, y, wstr, strlen(wstr)) marche très bien sous 98/me. on peut afficher du japonais, du russe, bref tous les caractères unicode 16 bits. (à condition d'avoir les fontes évidemment ... arial unicode pèse dans les 20 mos et n'est même pas complète).
Marsh Posté le 14-11-2001 à 15:14:15
El_Gringo a écrit a écrit : Forcément, g oublié de te dire, mais DDE c un mode de communication interprocess... sous windows, seul os digne de ce nom ! |
c'est juste facon de te dire que je ne travaille que sur de veritables OS... pas sur les fenetres mal fermees de monsieur Portes...
Marsh Posté le 14-11-2001 à 15:16:23
BENB a écrit a écrit : c'est juste facon de te dire que je ne travaille que sur de veritables OS... pas sur les fenetres mal fermees de monsieur Portes... |
peuuuuuh
y'a pas D3D sous nux
Marsh Posté le 14-11-2001 à 15:16:59
youdontcare a écrit a écrit : je ne suis pas spécialiste non plus ... je regarde les sources par ex pour un simple textout : #ifdef UNICODE #define TextOut TextOutW #else #define TextOut TextOutA #endif // !UNICODE WINGDIAPI BOOL WINAPI TextOutA(HDC, int, int, LPCSTR, int); WINGDIAPI BOOL WINAPI TextOutW(HDC, int, int, LPCWSTR, int); la version ...A est la version ASCII, la version ...W (pour Wide je suppose) est la version unicode. sous 98/me, en rajoutant un #define UNICODE dans le projet, on se fait jeter à l'éxécution ou à la compil avec un message 'winnt only'. ce qui n'empêche pas du tout d'utiliser les fonctions ...W . un TextOutW(dc, x, y, wstr, strlen(wstr)) marche très bien sous 98/me. on peut afficher du japonais, du russe, bref tous les caractères unicode 16 bits. (à condition d'avoir les fontes évidemment ... arial unicode pèse dans les 20 mos et n'est même pas complète). |
Il me semblait pourtant que sous Win32 il y avait des tables differentes que sous win16/DOS... et donc des moyen differents d'y acceder...
Si je me suis trompee, honte sur moi...
Marsh Posté le 14-11-2001 à 15:19:54
TheJackal a écrit a écrit : mais chrisbk:non mais ya OpenGL |
ne commencons pas, tu veux ?
Marsh Posté le 14-11-2001 à 15:21:22
tu veux qu'on ressorte le precedent topic en date ?
g pas eu de reponse a mon dernier post, si je me souviens bien
Marsh Posté le 14-11-2001 à 15:21:42
BENB a écrit a écrit : Il me semblait pourtant que sous Win32 il y avait des tables differentes que sous win16/DOS... et donc des moyen differents d'y acceder... Si je me suis trompee, honte sur moi... |
hmm je sais pas bien si on parle de la même chose. sous win32 y'a bien deux tables de caractères qui coexistent.
par ex 'é' : code unicode = 233
alt+233 = Ú
alt+0233 = é
par contre comment ça coexiste, je n'en sais rien du tout ... c'est le bordel, ça c'est sûr
Marsh Posté le 14-11-2001 à 15:22:46
chrisbk a écrit a écrit : tu veux qu'on ressorte le precedent topic en date ? g pas eu de reponse a mon dernier post, si je me souviens bien |
je devais pas etre la
Marsh Posté le 14-11-2001 à 15:35:14
J'dois avoir quelque chose d'un esprit malin en moi... dès que je lance un topic, ça part en gueguerre !
Marsh Posté le 14-11-2001 à 15:38:56
El_Gringo a écrit a écrit : J'dois avoir quelque chose d'un esprit malin en moi... dès que je lance un topic, ça part en gueguerre ! |
pkoi y'en a d'autre ?
Marsh Posté le 14-11-2001 à 16:10:39
nan je parlais a part celui la, justement .
Enfin bref, heuuh...
ca te dis pas un ANSI vs UNICODE ?
Marsh Posté le 14-11-2001 à 16:14:47
chrisbk a écrit a écrit : nan je parlais a part celui la, justement . Enfin bref, heuuh... ca te dis pas un ANSI vs UNICODE ? |
J'doute que ça déchaine les foules autant que l'autre...
non, à la limite un Windows vs Linux, là, je suis sur qu'on peut même faire exploser le serveur de "Hardware"
Marsh Posté le 14-11-2001 à 16:22:25
youdontcare a écrit a écrit : hmm je sais pas bien si on parle de la même chose. sous win32 y'a bien deux tables de caractères qui coexistent. par ex 'é' : code unicode = 233 alt+233 = Ú alt+0233 = é par contre comment ça coexiste, je n'en sais rien du tout ... c'est le bordel, ça c'est sûr |
Je ne pensais pas que c'etait de l'unicode vu que c'est en 8 bits... mais c'est bien a ce genre de chose que je pensais...
Marsh Posté le 14-11-2001 à 14:24:46
bah ouais, j'entend parler des 2, j'pense que, par défaut, en C, j'écrit que de l'unicode. Mais, par curiosité, c quoi au juste !?