Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server Denali : Support de l’UTF 16 en natif

C'est un apport majeur essentiellement pour les pages de code exotiques, en fait jusqu'à présent le support de l'Unicode par SQL Server est l'UCS-2 qui n'est aussi complet que l'UTF-16. L'UTF-16 code les caractères entre 2 et 4 octets.

La différence est que certains caractères sont considérés comme doubles. Pour plus de détails je vous invite à lire le blog de Michael Kaplan qui est plus doué que moi pour l'expliquer :
http://blogs.msdn.com/b/michkap/archive/2005/05/11/416552.aspx

Voici un script de test qui vous permettra de mieux comprendre la différence de comportement en SQL Server avant et après Denali :

-- Le caractère utilisé si dessous est :

 

SELECT NCHAR(55297) + NCHAR(56448)

 

-- Tentative d'insertion dans un nchar(1) -- 1 caractère Unicode

 

CREATE TABLE #x (test nchar(1))

GO

INSERT #x VALUES (N'𐒀') -- erreur

INSERT #x VALUES (N' ')

GO

 

SELECT LEN(test), DATALENGTH(test), test FROM #x

GO

 

-- Tentative d'insertion dans un nchar(2) -- 2 caractères Unicode

 

CREATE TABLE #y (test nchar(2))

GO

INSERT #y VALUES (N'𐒀')

INSERT #y VALUES (N' ')

GO

 

SELECT LEN(test), DATALENGTH(test), test FROM #y

GO

 

-- Tentative d'insertion dans un nchar(1) avec le classement fixé sur _SC

-- Possible uniquement sous SQL Server Denali

 

CREATE TABLE #z (test nchar(1) COLLATE Latin1_General_100_CI_AS_SC)

GO

INSERT #z VALUES (N'𐒀') -- pas d'erreur

INSERT #z VALUES (N' ')

 

GO

 

SELECT LEN(test), DATALENGTH(test), test FROM #z

GO

 

On le voit les nouveaux classements _SC, permettent de traiter les caractères au-delà de la limite traditionnelle comme un seul et unique caractère. Dans les versions précédentes ou avec les anciens classements celui-ci est considéré comme 2 caractères distincts.

Cela aura de l'importance essentiellement pour des alphabets peut courant, un certains nombres de caractères anciens ont été mis dans les pages supérieures de l'Unicode, certains idéogrammes chinois, japonais et coréens. Certains symboles, entre autres mathématiques, se trouvent là.

Et l'UTF-8 dans tout ça ?

L'UTF-8 permet de coder les caractères sur des tailles entre 1 et 5 octets suivant le contenu utile. Son principal avantage est de ne contenir que 1 octets pour les caractères de base ASCII, ce qui réduit considérablement l'espace de stockage.

Cependant l'équipe de développement de SQL Server a principalement misé sur un autre standard : Standard Compression Scheme for Unicode (SCSU) pour diminuer la taille des contenus Unicode. Certes le gain en termes de taille avec ce standard est meilleur qu'avec l'UTF-8 mais cette méthode n'est disponible qu'avec SQL Server 2008 R2 Enterprise & +.

Bon codage…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié mercredi 4 mai 2011 15:53 par christian

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01