2009-03-24 13 views
2

J'ai une table qui comprend la structure suivante.Français Texte stocké dans SQL Server Apparaît Incorrect, comment le faire apparaître correctement

CREATE TABLE [dbo].[tblData](
    [ID] [numeric](18, 0) NOT NULL, 
    [QID] [varchar](25) NOT NULL, 
    [Data] [nvarchar](255) NULL, 
    CONSTRAINT [PK_tblData] PRIMARY KEY CLUSTERED 
    (
     [ID] ASC, 
     [QID] ASC 
    ) 
) ON [PRIMARY] 

Dans l'exemple ci-dessus, la colonne [data] contient un mélange de langues différentes. Nous recueillons ces données via un site Web où nous définissons la page de codes appropriée. Je comprends que les données insérées dans notre tableau correspondent à la page de codes définie sur la page Web au moment de la collecte des données. Nous avons cette information stockée ailleurs.

Toutes les langues que nous utilisons sortent très bien de la table. Par exemple, le chinois sort et affiche comme nous en avons besoin. Nous essayons de vider ces données dans un fichier texte Unicode. Pour être précis: "UCS-2 LE" Il n'y a qu'une langue qui ne sort pas et qui est le français. Pour une raison quelconque, les caractères normalement accentués sont complètement faux. Ce que j'ai trouvé, c'est que les données (j'espère) semblent être "stockées" comme les mauvais caractères. Un collègue estime que ces données sont probablement correctes dans le tableau et nous devons juste le recopier pour corriger le jeu de caractères ou la bonne page de code pour afficher correctement les données avant de placer les données dans un UCS-2 LE fichier texte.

Quelqu'un peut-il donner un aperçu de mon problème? Merci!

Mise à jour: J'ai trouvé ceci: http://windowsitpro.com/windowsstorage/Article/ArticleID/14045/windowsstorage_14045.html - est-ce que revient à dire ce que je dois fait ne peut pas être fait? Je pense que ce que j'aimerais faire est légèrement différent, mais cette cause est [faux-] espoir.

Répondre

1

Votre collègue a raison. Comme les données sont stockées dans un type de données UNICODE, le format de la langue native doit être conservé. Ce qui doit arriver est lorsque vous sélectionnez les données, vous voulez vous assurer qu'un classement approprié est utilisé pour l'utilisateur qui a exécuté la requête, c'est-à-dire les paramètres régionaux.

consulter les documents suivants Livres référence en ligne pour l'utilisation de SQL Server dans les classements

http://msdn.microsoft.com/en-us/library/ms144260(SQL.90).aspx

Hope this helps. À votre santé.

+0

Cela m'a aidé, merci. Je pense que cela m'a indiqué que ce que je veux faire est impossible parce que j'ai besoin de convertir en page de code 863 et SQL Server ne supporte pas cette page de code ... –