Строка и UTF16 - PullRequest
       19

Строка и UTF16

1 голос
/ 05 мая 2011

Всегда ли данные, хранящиеся в объекте String, закодированы с помощью UTF16?

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

Спасибо

Ответы [ 5 ]

5 голосов
/ 05 мая 2011

Внутренние строки .NET находятся в UTF-16, да ... но важно то, как данные передаются между .NET и вашей базой данных.

До тех пор, пока символы могут быть представлены в Unicode, и драйвер выполняет соответствующее преобразование, у вас все должно быть в порядке. Если вы пытаетесь представить текст, который не может быть представлен в Юникоде, вы можете столкнуться с некоторым интересным поведением.

0 голосов
/ 05 мая 2011

Если вы используете ADO.NET с SqlDataCommands (или другими типами DataCommands), любое необходимое преобразование должно быть обработано за вас, и вам не нужно беспокоиться об этом.

0 голосов
/ 05 мая 2011

Внутреннее хранение символов (и, следовательно, строк) в .NET осуществляется в UTF-16.

Вам потребуется перекодировать строку в кодировку, используемую вашей базой данных.

См. Класс Encoding - это то, что вы можете использовать для преобразования строки из одной кодировки в другую.

0 голосов
/ 05 мая 2011

.NET Строки ВСЕГДА Unicode.Если ваша база данных имеет юникод, у вас все в порядке, в противном случае вам нужно будет преобразовать текст из любого формата, в котором он находится, в юникод.

0 голосов
/ 05 мая 2011

Да, строки .NET всегда кодируются в UTF-16 - за исключением суррогатных пар, которые означают 2-байтовые символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...