2010-11-20 4 views
0

Спокойной ночи,Unicode в Regex и DB Чтение/запись

В настоящее время я работаю над очень простым лексическим Analiser для человеческого языка C# на основе Regex соответствия, и я в настоящее время сталкиваюсь с проблемой задав регулярное выражение, может сопоставлять все возможные символы пунктуации на целевом языке, а другой - всевозможные пробелы. После поиска здесь в Stack Overflow и другом сайте я обнаружил, что я могу использовать Regexs \p{P} для пунктуации и \p{Z} для пробелов, и он работает при чтении из текстового файла. Вопрос в том, что в финальной программе потребуется прочитать записи из базы данных SQL и обработать их с помощью этого лексического анализатора, и я не знаю, что такое кодировка записей в БД. Может ли это быть проблемой в этой ситуации? Могут ли указанные регулярные выражения соответствовать каждому знаку пунктуации и пробелу ввода независимо от того, какова их кодировка?

спасибо.

+0

Какой db вы используете? – Amirshk

+0

SQL Server 2008. – Miguel

ответ

2

.NET Framework преобразует строки в Юникод из базы данных. Правильно ли он преобразует их, зависит от того, что-то сказал ему, что такое кодировка текста базы данных. Но строки, которые ваш Regex видит, будут в Юникоде.

Итак, предполагая, что уровень доступа к базе данных правильно преобразовал текст из записи базы данных, вам не нужно беспокоиться о кодировке, потому что это всегда Юникод.

+0

Большое спасибо Mischel. – Miguel