2010-11-20 4 views
0

Bonne nuit,Unicode dans Regex et DB lecture/écriture

Je travaille actuellement sur un analiser lexical très simple pour le langage humain en C# basé sur la correspondance Regex, et je suis actuellement confronté au problème de specifing un regex qui peut correspondre à tous les signes de ponctuation possibles dans la langue cible, et un autre qui peut également correspondre à tous les espaces vides. Après avoir cherché ici dans Stack Overflow et un autre site, j'ai trouvé que je peux respectivement utiliser Regexs \p{P} pour la ponctuation et \p{Z} pour les espaces, et cela fonctionne lors de la lecture d'un fichier texte. La question est que dans le programme final, il sera nécessaire de lire les enregistrements d'une base de données SQL et de les traiter en utilisant cet analisateur lexical, et je ne sais pas quel est le codage des enregistrements dans la base de données. Cela peut-il être un problème dans cette situation? Les expressions rationnelles mentionnées peuvent-elles correspondre à tous les signes de ponctuation et espaces blancs d'une entrée quel que soit leur codage?

Merci beaucoup.

+0

Quelle DB utilisez-vous? – Amirshk

+0

SQL Server 2008. – Miguel

Répondre

2

.NET Framework convertira les chaînes en Unicode à partir de la base de données. Si elle les convertit correctement, cela dépend si quelque chose lui a dit quel était le codage du texte de la base de données. Mais les chaînes que votre Regex voit seront en Unicode. Donc, en supposant que la couche d'accès à la base de données convertisse correctement le texte à partir de l'enregistrement de base de données, vous n'avez pas à vous inquiéter de l'encodage car c'est toujours Unicode.

+0

Merci beaucoup Mischel. – Miguel