Choix interclassement Windows [Mysql] - SQL/NoSQL - Programmation
Marsh Posté le 14-11-2007 à 17:46:00
1/ Je te déconseille d'utiliser PHP pour le WebService. En effet, .NET permet d'instancier sous forme d'un objet local un WebService écrit en .NET. Avec les autres langages, je pense que tu risques de devoir patouiller un moment avant de trouver comment reproduire ce comportement.
2/ Tu n'as pas à te soucier de la représentation en mémoire du type String dans le programme .NET. T'as juste à savoir l'interfacer correctement lorsque tu communique avec un outils externe.
=> Via un WebService, tu auras une clause dans ton flux XML indiquant quel charset est utilisé pour transporter les données : .NET va décoder ce charset pour utiliser sa propre représentation ensuite. Idem pour la réponse, .NET va adapter sa réponse à l'encodage attendu.
Enfin, pour lire une chaîne dont l'encoding est connu, mais dont .NET n'est pas capable de déterminer le type automatiquement (un fichier texte par exemple), alors tu as cette solution :
Code :
|
Et sa réciproque, avec GetBytes (génère un array de bytes à partir d'un string, en utilisant l'encoding désiré)
Exemple simple :
Code :
|
|
En gros, l'encoding des strings en mémoire est systématiquement Unicode (mais ça pourraît être n'importe quoi d'autre, tu t'en cognes).
Si tu n'utilises pas des classes capable de reconnaître l'encodage utilisé automatiquement, tu dois le faire toi-même.
La classe TextWriter et TextReader, qui sont les seules à manipuler directement des streams de type string, ont un paramètre d'encodage au même titre que Console.
Bref, t'as pas de question à te poser, ça marche tout seul.
Marsh Posté le 14-11-2007 à 17:53:16
PS : Le passage de Unicode à UTF-8 et vice versa est 100% compatible. La seule différence c'est que Unicode utilise systématiquement 2 bytes pour coder un caractère. Pour cette raison, le type char n'est absolument pas synonyme de byte en .NET. Il n'existe d'ailleurs pas à ma connaissance de méthode permettant de connaître la valeur numérique d'un char.
Marsh Posté le 14-11-2007 à 15:00:33
Bonjour,
Je suis dans l'obligation de travailler sur un serveur 2003.
J'ai habituellement l'habitude de travailler sous unix (et dans ce cas, je ne poserais pas la question) mais le doute d'installe lorsque je travaille sous windows.
J'ai un projet qui doit utilisé une base de donnée Mysql.
Une partie de se projet sera une application C#, l'autre partie sera un webservice.
Il va y a voir un dialogue webservice (surement en PHP) vers la base donnée, webservice vers le logiciel C# et du logiciel C# vers la base de donnée.
Vu que tout ceci travaille sous windows, quel interclassement choisir pour ma base de donnée ?
Si je choisis UTF-8 est-ce que tout mes applis PHP et mon projet .NET en C# savent sans problème travaillé en UTF-8 ??
Merci