SQL Server utf8 howto?


Я перенес базу данных из mysql в SQL Server (politics), оригинальную базу данных mysql с использованием UTF8.

теперь я читаю https://dba.stackexchange.com/questions/7346/sql-server-2005-2008-utf-8-collation-charset что SQL Server 2008 не поддерживает utf8, это шутка?

SQL Server содержит несколько баз данных, в основном с латинским кодом. Поскольку перенесенная БД предназначена для веб-публикации, я хочу сохранить кодировку utf8. Я что-то пропустил или нужно ли мне enc / dec на уровне приложения?

5 59

5 ответов:

нет! Это не шутка.

Взгляните сюда:http://msdn.microsoft.com/en-us/library/ms186939.aspx

символьные типы данных фиксированной длины, nchar или данные переменной длины, nvarchar, Unicode и использование UNICODE UCS-2 набор символов.

а также здесь:http://en.wikipedia.org/wiki/UTF-16

старый UCS-2 (2-байтовый универсальный набор символов) похож кодировка символов, которая была заменена UTF-16 в версии 2.0 Стандарт Unicode в июле 1996 года.

UTF-8-это не набор символов, это кодирование. Набор символов для UTF-8-Юникод. Если вы хотите сохранить текст в Юникоде, вы используете nvarchar тип данных.

Если база данных будет использовать UTF-8 для хранения текста, вы все равно не получите текст как закодированные данные UTF-8, вы получите его как декодированный текст.

вы можете легко хранить кодированный UTF-8 текст в базе данных, но тогда вы не храните его как текст, вы храните его как двоичные данные (varbinary).

обратите внимание, что начиная с Microsoft SQL Server 2016, UTF-8 поддерживается bcp,BULK_INSERT и OPENROWSET.

добавление 2016-12-21: SQL Server 2016 SP1 теперь включает сжатие Unicode (и большинство других ранее корпоративных функций) для всех версий MS SQL, включая Standard и Express. Это не то же самое, что поддержка UTF-8, но она дает аналогичное преимущество, если целью является сокращение дискового пространства для Western алфавиты.

на самом деле нет никаких проблем с использованием UTF8, путем создания SQLCLR UDF и вы можете скачать из Microsoft код. проверьте эту ссылку:http://technet.microsoft.com/en-us/library/ms160893 (v=sql. 90). aspx

похоже, что это, наконец, будет поддерживаться в SQL Server 2019! SQL Server 2019 - Что нового?

от бол:

поддержка UTF-8

полная поддержка широко используемой кодировки символов UTF-8 в качестве импорта или экспортировать кодировку, или как параметры сортировки уровня базы данных или столбца для текстовые данные. UTF-8 допускается в CHAR и VARCHAR типы данных, и включена при создании или изменении объекта сортировки для сортировки с помощью UTF8 суффиксом.

например,LATIN1_GENERAL_100_CI_AS_SC to LATIN1_GENERAL_100_CI_AS_SC_UTF8. UTF-8 доступен только для Windows параметры сортировки, поддерживающие дополнительные символы, представленные в SQL Сервер 2012. NCHAR и NVARCHAR разрешить только кодировку UTF-16 и остаться не менявшийся.

эта функция может обеспечить значительную экономию памяти, в зависимости от набор символов в использовании. Например, изменение существующих данных столбца типа с текстовой строки от NCHAR(10) до CHAR(10) С помощью UTF-8 включена сортировка, что приводит к почти 50% сокращению объема хранения требования. Это сокращение происходит потому, что NCHAR(10) требуется 22 байта для хранения, тогда как CHAR(10) требуется 12 байт для того же Юникода строка.