2011-05-05 5 views
1

Les données stockées dans l'objet String sont-elles toujours codées avec UTF16?Chaîne et UTF16

Je demande cela parce que ma base de données ne stocke pas anglais dans non Unicode. et j'ai supposé que les données ne seraient pas lisibles parce qu'elles sont lues dans un mauvais encodage.

Merci

+0

Quel encodage votre base de données utilise-t-elle? – Justin

Répondre

5

En interne Les chaînes .NET sont en UTF-16, oui ... mais l'important est de savoir comment les données sont transférées entre .NET et votre base de données.

Tant que les caractères peuvent être représenté en Unicode, et le pilote effectue la conversion appropriée, tout devrait bien se passer. Si vous essayez de représenter un texte qui ne peut pas être représenté en Unicode, vous risquez de rencontrer un comportement intéressant.

+0

Voilà la réponse à laquelle je m'attendais :) – Costa

0

Oui, les chaînes .NET sont toujours codés en UTF-16 - à l'exception des paires de substitution qui signifie 2 caractères à un octet.

0

Les chaînes .NET sont TOUJOURS Unicode. Si votre base de données est unicode, tout va bien, sinon vous devrez convertir le texte de n'importe quel format en unicode.

0

Le stockage interne des caractères (et donc des chaînes) dans .NET se fait en UTF-16.

Vous devrez réencoder la chaîne au codage utilisé par votre base de données.

Voir la classe Encoding - c'est ce que vous pouvez utiliser pour convertir une chaîne d'un encodage à un autre.

0

Si vous utilisez ADO.NET avec SqlDataCommands (ou d'autres types de DataCommands), toute conversion requise doit être gérée pour vous, et vous n'aurez pas à vous soucier de cela.

Questions connexes