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 ответов:
нет! Это не шутка.
Взгляните сюда: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
toLATIN1_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 байт для того же Юникода строка.