2010-05-19 7 views
0

Je suis en train de programmer en VB.NET en utilisant Visual Studio 2008. J'ai besoin de définir un littéral de chaîne contenant le caractère "÷" équivalent à Chr (247). Je comprends que VS utilise en interne le codage UTF-16, mais lorsque le fichier source est écrit sur le disque, il contient la valeur d'octet unique F7 pour ce caractère.Comment définir un littéral de chaîne contenant des caractères non-ASCII?

Ce fichier source est traité par un autre programme qui utilise le codage UTF-8 par défaut. Il ne parvient donc pas à interpréter ce caractère correctement, en essayant de le combiner avec le caractère mono-octet suivant. Quel encodage interpréterait correctement le seul octet F7 comme le caractère unique ÷?

Est-il possible d'exprimer un littéral non-ASCII qui utilise uniquement des caractères ASCII, comme l'utilisation d'une séquence d'échappement?

Répondre

3

bien, j'ai toujours pensé que par défaut VS utilise UTF-8 pour enregistrer des fichiers. Mais ÷ est F7 dans l'encodage ISO 8859-1. Si cela ne vous suffit pas, allez-y: how to change source file encoding in csharp project (visual studio/msbuild machine)?

+0

Si vous ne spécifiez pas d'encodage, le fichier est écrit en ASCII (données 7 bits). Pour le jeu de caractères ASCII complet, j'utilise l'encodage winndows-1252. – dbasnett

+0

Dans les paramètres régionaux d'Europe de l'Ouest, VS2008 utilise la page de codes Windows pour enregistrer des fichiers, à moins que certains caractères ne conviennent pas! Merci beaucoup, c'était exactement le pointeur dont j'avais besoin. – Nick

+0

@dbasnett, no. Je peux être sûr seulement de l'éditeur C# dans VS, parce que je l'utilise principalement. donc, il enregistre en UTF-8, qui est rétrocompatible avec ASCII. – Andrey