2009-09-22 12 views
0

Un collègue me dit qu'il n'y a aucun moyen d'insertion en bloc de données codées UTF-8 dans un serveur Microsoft SQL 2008.Microsoft SQL server 2008 et UTF-8

Cela peut-il être vrai? Y at-il des choses que vous lui recommanderiez de lire ou de regarder?

+0

"Un collègue". Sûr. : P – Artelius

Répondre

2

C'est vrai. Le documentation for BULK INSERT indique que «SQL Server [2008] ne prend pas en charge la page de codes 65001 (encodage UTF-8)». Il existe également un Connect Page pour ce problème, bien que le problème soit maintenant résolu.

+0

Lien très intéressant (page de connexion). Et aussi un peu effrayant de lire la réponse de Microsoft. –

+0

J'accepte cela comme une réponse, car il est ouvert depuis si longtemps. –

3

UTF-8 ne fait pas partie de la stratégie Unicode de SQL Server (malheureusement). Cependant, UTF-8 est bien supporté dans .NET. Si vous souhaitez écrire du code .NET, vous pouvez utiliser la classe System.Data.SqlClient.SqlBulkCopy conjointement avec un System.IO.StreamReader et/ou `System.Text.Encoding.UTF8 '.

Une autre option est Integration Services. Pour les connexions de fichiers, vous pouvez choisir la page de codes 65001 (UTF-8).

+0

En fait, il n'y a pas de .NET utilisé ici. C'est un environnement de développement Windows exécutant Cold Fusion sur le serveur avec un backend MS SQL Server 2008. Tous les outils doivent comprendre le codage choisi. À l'heure actuelle, l'encodage choisi est ISO-8859-1 (latin 1). –

+1

Voir la partie sur l'utilisation de Integration Services. Alternativement, si vous êtes dans Powershell, vous pouvez appeler toutes les choses .NET nécessaires à partir de là. –

+0

Merci de décrire la solution de contournement. –

Questions connexes