Можно ли проверить строковое кодирование? - PullRequest
3 голосов
/ 08 ноября 2011

В моем приложении я импортирую текст в базу данных из файлов, которые пользователи загружают на сайт. База данных SQL Server 2005, текст хранится nvarchar столбец, я использую EF и L2SQL.

Пользователи должны создавать свои файлы с помощью UTF-8, но, к сожалению, некоторые из них, очевидно, использовали другую кодировку. В результате некоторые символы являются недопустимыми.

Я бы хотел узнать, какие записи действительны. Я использую utf8checker . Он отлично работает с оригинальными файлами, но когда текст из базы данных, IsUtf8 метод всегда возвращает true.

1 Ответ

1 голос
/ 08 ноября 2011

Я думаю, что SQL-сервер всегда будет хранить Unicode как UCS-2. Таким образом, вы должны убедиться, что данные имеют правильную кодировку во время вставки, а не во время чтения. В противном случае SQL-сервер будет искажать его для вас, и я не думаю, что есть способ определить исходную кодировку после вставки данных - если, возможно, у вас нет определения кодировки в самой записи, например, в другом столбце или первых нескольких символах вашего элемента данных. Например. - XML ​​делает это таким образом.

Надеюсь, это поможет.

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