2009-05-06 6 views
3

J'essaie de mettre à jour la valeur d'un tag avec des caractères chinois. Cependant, il n'ajoute pas les caractères chinois. Au lieu de cela, il ajoute "???" . par exemple. table de mise à jour mis col.modify («remplacer la valeur de (/ tag/texte()) [1] avec "我") où .. Toute aide est très appréciéesql server 2005 xml update query caractères chinois

grâce Ben

+0

@unknown: je me suis déplacé une autre question de la vôtre (serveur Sql 2005 awe) à serverfault.com où nous espérons qu'il obtiendra les réponses des gens qui connaissent un peu plus à ce sujet. –

Répondre

4

Pour l'international des caractères comme celui-ci que vous voulez utiliser N'this est mes données 'pour indiquer qu'il est unicode/nchar. Sinon, il est traité comme char, et je suppose que le classement db ne peut pas supporter les caractères que vous soumettez. Essayez de faire simplement

select 'my chars' 

et de voir si vous obtenez toujours des points d'interrogation, je suppose que oui.

EDIT - voici un exemple qui confirme ma suggestion fonctionne:

declare @x xml 
set @x = N'<tag>abc</tag>' 
set @x.modify (N'replace value of (/tag/text())[1] with "我"') 
select @x 

Je vois le symbole lorsque je sélectionne le xml, et je vérifié que, avant et après le caractère est 0x1162 (prouve les données intact).

+0

J'essaie de mettre à jour les données XML. Les mises à jour fonctionnent pour les types de données nvarchar mais si j'essaie de mettre à jour un type de données xml, la mise à jour ne fonctionne pas – user55474

+0

@poster - Voir l'exemple dans lequel j'ai édité. Cela fonctionne, donc vous devez faire quelque chose de mal si cette approche vous donne encore difficulté. Donnez-nous plus de détails si vous avez encore des problèmes. – ahains

+0

J'envoie les données dans un proc stocké. Le type de données est nvarchar. encore ça l'épargne comme ??? – user55474

2

Utilisez-vous des chaînes Unicode? Ceux Commençons par un N majuscule, comme:

update yourtable 
set yourvalue = N'your chinese characters' 
where id = yourid 
+0

J'essaie de mettre à jour les données XML. Les mises à jour fonctionnent pour les types de données nvarchar mais si j'essaie de mettre à jour un type de données xml, la mise à jour ne fonctionne pas. – user55474

+0

Pourriez-vous publier les définitions de tables et l'exemple XML? Je ne peux pas lire dans votre esprit;) – Andomar

+0

mettre à jour le jeu de tables col.modify ('remplacer la valeur de (/ tag/text()) [1] par sql: variable ("@ data")') le type de données est @data nvarchar – user55474