Я не уверен, что FullTextSearch лучше всего работает с столбцами VarBinary, хотя мой инстинкт говорит «нет», но я могу ответить на вторую половину вашего вопроса.
Причина, по которой вы получаете нечетные символы, заключается в том, что ASCIIEncoder.GetBytes () обрабатывает текст как ASCII и может иметь именно такие ошибки, если код, который вы кодируете, не кодируется в ASCII. По умолчанию строки в .NET имеют формат UTF8, поэтому у вас, вероятно, возникают проблемы. Используйте Encoding.UTF8.GetBytes()
, чтобы получить байты для строки UTF8.
Это также отвечает на второй вопрос - полезен ли этот метод для строк Unicode? Да, так как вы не храните строки вообще. Вы храните байты, которые, как известно вашему приложению, являются закодированными строками Unicode. SQL ничего с ними не сделает, потому что они просто байты.