Description du stockage des données UTF-8 dans SQL Server
Description du stockage des données UTF-8 dans SQL Server Imprimer
(الشرق الاوسط (العربية Brasil (Português) Deutschland (Deutsch) España, Latinoamérica (Español) Indonesia (Bahasa Indonesia) Italia (Italiano) Portugal (Português) Slovenská Republika (Slovenčina) Türkiye (Türkçe) United States (English) Việt Nam (Tiếng Việt) Česká republika (Čeština) Ελλάδα (Ελληνικά) Россия (Русский) भारत (हिंदी) ไทย (ไทย) 中国 (简体中文) 台灣 (繁體中文) 日本 (日本語) 대한민국 (한국어) Numéro d'article: 232580 - Voir les produits auxquels s'applique cet articleATTENTION : Cet article est issu du système de traduction automatiqueTraduction automatique des pages de support MicrosoftSi vous êtes un client Small Business, découvrez des ressources de formation et de résolution de problèmes supplémentaires sur le site de Support pour Small Business.Agrandir tout | Réduire toutRésumé Certaines applications (notamment celles qui sont basé sur le Web) doivent utiliser les données Unicode qui sont codées avec la méthode de codage UTF-8. SQL Server 7.0 et SQL Server 2000 utilisent un autre Unicode codage (UCS-2) et ne reconnaissent pas UTF-8 comme données de caractère valide. Cet article décrit certaines options pour traiter cette situation. Plus d'informations Données Unicode peuvent être codées de différentes manières. UCS-2 et UTF-8 existe deux moyens courants pour stocker les modèles de bits qui représentent des caractères Unicode. Microsoft Windows NT, SQL Server, Java, COM et le pilote ODBC SQL Server et fournisseur OLEDB tout en interne représentent données Unicode comme UCS-2. Les options d'utilisation de SQL Server 7.0 ou SQL Server 2000 en tant que serveur principal pour une application qui envoie et reçoit des données Unicode qui sont codées en tant que UTF-8 incluent : Si votre application utilise ASP (Active Server Pages) et que vous utilisez Internet Information Server (IIS) 5.0 et Microsoft Windows 2000, vous pouvez ajouter "< % Session.Codepage=65001 % >" à votre script ASP côté serveur. Cela force IIS pour convertir toutes les chaînes générées dynamiquement (exemple : Response.Write) de UCS-2 à UTF-8 automatiquement avant de les envoyer au client.Si vous ne souhaitez pas activer des sessions, vous pouvez également utiliser la directive côté serveur " < % @ CodePage = 65001 % > ". Les données UTF-8 envoyées à partir du client à serveur via GET ou POST sont converties également automatiquement en UCS-2. La propriété Session.codepage est la méthode recommandée pour traiter les données UTF-8 dans une application web. Ce paramètre de page de codes n'est pas disponible sur les services Internet (IIS) 4.0 et Windows NT 4.0. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances : 254313
Message d'erreur : Active Server Pages erreur 'ASP 0203 « code non valide. Traduire avec D'UCS-2 ou UTF-8 en fonction de l'application. Exemple de code pour ce type de conversion se trouve sur le site le Consortium Unicode :ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/
Une description détaillée de l'algorithme pour convertir UCS-2 en UTF-8 peut se trouver dans le document de demande de commentaires Internet RFC2279. Sur Windows NT ou Windows 2000, vous pouvez utilisez les fonctions Win32 MultiByteToWideChar et WideCharToMultiByte pour convertir UTF-8 de UCS-2 en passant la constante CP_UTF8 (65001) comme premier paramètre aux fonctions.Modifier l'application pour utiliser UCS-2 au lieu de codage UTF-8.Stocker les données réelles UTF-8 sur le serveur utilisant les colonnes BINARY/varbinary/image. Stockage des données de UTF-8 sur SQL Server signifie que vous ne pouvez pas utiliser SQL Server pour trier ou trouver des plages de ces valeurs comme si les données ont été données caractères valides. Les types d'opérations sur les colonnes contenant des données de UTF-8 pas retourne les résultats attendus comprennent « ORDER BY », plus, que " > "moins - que" < " des comparaisons et les fonctions intégrées de manipulation chaîne SQL Server comme SUBSTRING(). Cependant, des comparaisons d'égalité, fonctionne tant que les chaînes comparées sont équivalents à un niveau octet. Notez que si vous stockez des données UTF-8 dans SQL Server vous ne devez pas utiliser colonnes caractère (CHAR/NCHAR/varchar et ainsi de suite). UTF-8 n'est pas caractère valide les données vers SQL Server et en stockant les caractères non données dans les colonnes caractère que vous risquez de rencontrer des problèmes tels que les problèmes décrits dans les articles suivants de la base de connaissances Microsoft : 155723
Fichier INF: SQL Server troncation d'une chaîne de caractères DBCS 234748
MODÈLE : pilote ODBC SQL Server convertit les événements de langue au format Unicode Si vous envisagez de cette option, n'oubliez pas que si vous souhaitez pouvoir accéder aux données UTF-8 stockées dans SQL Server de n'importe quelle application autre qu'un navigateur Web (par exemple, d'une application ODBC non Web-basé) vous devez faire une conversion de UTF-8 UCS-2 de cette application ODBC OLEDB, COM, appels D'API Win32, Visual Basic et C runtime chaîne manipulation fonctions ne fonctionnent pas avec les données UTF-8. Il déplace la tâche de traduction vers une autre application.Si vos besoins n'incluent pas la nécessité de stocker les données d'une combinaison de langages qui ne peut pas être satisfaite par une page de codes unique, vous devrez pas utiliser Unicode. Prise en charge Unicode a été introduit dans SQL Server commençant par SQL Server 7.0. Comme SQL Server 6.5 ne prend pas en charge le stockage de données Unicode, les seules options pour SQL Server 6.5 décrites dans l'étape 4 et étape 5. PropriétésNuméro d'article: 232580 - Dernière mise à jour: mercredi 7 décembre 2005 - Version: 4.4Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):Microsoft SQL Server 2000 StandardMicrosoft SQL Server 6.5 Édition StandardMicrosoft SQL Server 7.0 StandardMicrosoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Express EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Workgroup EditionMots-clés : kbmt kbinfo KB232580 KbMtfrTraduction automatiqueIMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.La version anglaise de cet article est la suivante: 232580