Юникод в регулярных выражениях и чтение / запись БД - PullRequest
0 голосов
/ 20 ноября 2010

Спокойной ночи,

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

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

1 Ответ

2 голосов
/ 20 ноября 2010

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

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

...