Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
Как связаны эти 3 вещи? Скажем если версия винды английская, то вставить русский текст (или любой другой) можно только установив поле в nvarchar. Нужно-ли в этом случае устанавливать и collation на русский тоже и если да то зачем если и так вроде все работает? Если локализация винды русская, то все должно работать и с varchar, опять-же нужно-ли ставить коллейшн в этоим случае если и так работает? Непонятно только почему работает varchar в этом случае, ему-ж байт не должно хватать для русских букв? В общем как правильно этими вещами манипулировать в многоязычных системах, скажем клиент работает на арабском языке, ставим ему nvarchar + арабский коллейшн? А если коллейшн не изменять, то чем это грозит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 02:28 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 02:38 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
Дедушкачитать доку полезно, в ней написано varchar nvarchar У тредстартера непонимание основ, а ты ему мелочи жизни тычешь. 1. Varchar = 1-о байтовая кодировка, она же ASCII. 2. Nvarchar = 2-х байтовая кодировка, она же UNICODE. 3. Collation = правило сравнения/сортировки символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 05:52 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
ок, коллейшн нужен для сортировки, значит с неверным коллейшн текст хранится будет, но операции поиска и сравнения не будут работать верно если коллейшн английский, а текст в nvarchar русский или арабский, это верно? По-прежнему непонятно почему на русской локали русский текст замечательно хранится в varchar, почему так происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 08:03 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
stenfordоперации поиска и сравнения не будут работать верно если коллейшн английский, а текст в nvarchar русский или арабский, это верно?Операции поиска и сравнения будут работать по правилам того коллейшена, который вы укажете для этих операций. Независимо от каких то "установок коллейшена", про которые вы писали stenfordПо-прежнему непонятно почему на русской локали русский текст замечательно хранится в varchar, почему так происходит?В varchar хранится не русский, или какой то другой, текст, а байты, т.е. цифры со значениями от 0 до 255. В древние времена, когда UNICODE ещё не придумали, тексты на любых языках хранились именно в таком виде, и каждый раз определялись "кодировки", указывающие, какую букву нужно показывать на экране для каждого значения байта. Так вот, когда вы устанавливаете "русскую локаль", в виндах делается специальная установка, которая указывает, что ряд байтов в однобайтных символах интерпретируются как русские буквы. Там настройка даже так называется, понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 08:52 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
stenfordок, коллейшн нужен для сортировки, значит с неверным коллейшн текст хранится будет, но операции поиска и сравнения не будут работать верно если коллейшн английский, а текст в nvarchar русский или арабский, это верно?Но в общем да, правильно, не будут. Вы указываете для сортировки определённый коллейшен, и сортировка будет работать по правилам этого коллейшена. И перекрёстные правила сортировки, как я понимаю, в этом стандарте не определены, т.е., как я понимаю, остальные символы будут сортироваться по значениям кодов? Или в коллейшене вес символа определён для всех символов, а не только для символов этого языка? Кто знает стандарт, расскажите! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 08:56 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 09:01 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
alexeyvgбайты, т.е. цифры со значениями от 0 до 255Это числа. А десятичные цифры - это 0,1,2,3,4,5,6,7,8,9, и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 09:53 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
iapalexeyvgбайты, т.е. цифры со значениями от 0 до 255Это числа. А десятичные цифры - это 0,1,2,3,4,5,6,7,8,9, и всё. арабские цифры жеж ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 09:55 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
TaPaKiapпропущено... Это числа. А десятичные цифры - это 0,1,2,3,4,5,6,7,8,9, и всё. арабские цифры жежОт основания системы тоже зависит. A,B,C,D,E,F тоже могут быть цифрами. Шестнадцатиричными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 10:03 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
iapTaPaKпропущено... арабские цифры жежОт основания системы тоже зависит. A,B,C,D,E,F тоже могут быть цифрами. Шестнадцатиричными. нисомненно, полемика наше всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 10:06 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
stenfordПо-прежнему непонятно почему на русской локали русский текст замечательно хранится в varchar, почему так происходит? локаль тут вообще никаким местом. а вот коллэйшен столбца еще как при чем. кириллица будет именно кириллицей в варчаре только при условии, что коллэйшен столбца кирилический, и если заносили эту самую кириллицу либо в контексте кириллической же базы, либо передавали юникодом. ибо коллэйшен это не только "правила сортировки". каждому коллэйшену соответствует определенная кодовая страница, и именно ее будет использовать сервер, отдавая вам байты из варчара в виде символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2017, 23:01 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
o-ostenfordПо-прежнему непонятно почему на русской локали русский текст замечательно хранится в varchar, почему так происходит? локаль тут вообще никаким местом. а вот коллэйшен столбца еще как при чем. кириллица будет именно кириллицей в варчаре только при условии, что коллэйшен столбца кирилический, и если заносили эту самую кириллицу либо в контексте кириллической же базы, либо передавали юникодом. ибо коллэйшен это не только "правила сортировки". каждому коллэйшену соответствует определенная кодовая страница, и именно ее будет использовать сервер, отдавая вам байты из варчара в виде символов т.е. на русской локали если коллейшн английский, то varchar русские буквы хранить не будет? Почему тогда на английской локали если я ставлю русский коллешн, то русские буквы не сохраняются? Путаница какая-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2017, 03:04 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
stenfordo-oпропущено... локаль тут вообще никаким местом. а вот коллэйшен столбца еще как при чем. кириллица будет именно кириллицей в варчаре только при условии, что коллэйшен столбца кирилический, и если заносили эту самую кириллицу либо в контексте кириллической же базы, либо передавали юникодом. ибо коллэйшен это не только "правила сортировки". каждому коллэйшену соответствует определенная кодовая страница, и именно ее будет использовать сервер, отдавая вам байты из варчара в виде символов т.е. на русской локали если коллейшн английский, то varchar русские буквы хранить не будет? Почему тогда на английской локали если я ставлю русский коллешн, то русские буквы не сохраняются? Путаница какая-то А ты не слушай идиотов. Varchar хранит БАЙТЫ, т.е. восьмибитные заначения от 0 до 255. И срал он на коллейшн. Это лехко проверить. Напихайте туды любой шняги и смените коллэйшн поля или унесите базу на сервер с другим коллэйшн - ничего не изменится. Более того, сама возможность писать Код: sql 1. намекает на ЭТО. o-oи именно ее будет использовать сервер, отдавая вам байты из варчара в виде символов Шедевр идиотизма. Байты остаются байтами. Всегда. stenfordт.е. на русской локали если коллейшн английский, то varchar русские буквы хранить не будет? Почему тогда на английской локали если я ставлю русский коллешн, то русские буквы не сохраняются? Путаница какая-то Все проблемы такого сорта - суть проблемы обмена с ВНЕШНИМИ системами. Когда внешняя система передает серверу строку байт она передает и "язык этой строки". Ну а сервер (точнее даже, клиентские библиотеки для связи с сервером) проявляет находчивость, если в "языке строки" не предполагается наличия некоторых значений байта ( например для английского - всех значений >128 ) - сервер любезно херит эти "неправильные" байты. Обойти это можно, передавая строку байт как binary - тогда никакой обработки не будет и в varchar попадет "в точности" те значения байт, которые передали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2017, 06:20 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
aleks222stenfordпропущено... т.е. на русской локали если коллейшн английский, то varchar русские буквы хранить не будет? Почему тогда на английской локали если я ставлю русский коллешн, то русские буквы не сохраняются? Путаница какая-то А ты не слушай идиотов. Varchar хранит БАЙТЫ, т.е. восьмибитные заначения от 0 до 255. И срал он на коллейшн. Это лехко проверить. Напихайте туды любой шняги и смените коллэйшн поля или унесите базу на сервер с другим коллэйшн - ничего не изменится. Более того, сама возможность писать Код: sql 1. намекает на ЭТО. o-oи именно ее будет использовать сервер, отдавая вам байты из варчара в виде символов Шедевр идиотизма. Байты остаются байтами. Всегда. наивный чукотский дарагуля, получи-ка картинкой ответ репро-код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. пояснения. в таблице 2 поля-варчара, один с кириллическим коллэйшеном, другой с греческим. кладем в первое поле кириллицу. во второе кладем те же самые байты, просто тупо копируем их из первого. для тех, кто еще сомневается, что байты все те же, выведем их селектом в виде Код: sql 1. 2. ну а теперь кажется алекс обещал нам одинаковый результат при селекте, ведь байты все те же? ну, убеждаемся в их "одинаковости" при селекте в виде варчара. да, варчара, дарагуля, ибо ТС не про варбайнари спрашивал, а про варчар. и сервер ему байты (те же самые байты!) отдает в соответствии с коллэйшеновой кодовой страницей. нет, конечно, последователи алекса-трижды двоечника могут продолжить работу именно с варбайнари, ведь поле оно на то и объявлено варчаровым, чтобы оттуда выгребать именно байты. ну или может нас спасет col_gr collate cyrillic_general_ci_as? результаты на картинке, код приложен. запускайте, проверяйте. алекс, что бы ты ни говорил, ты ВАСЯ. кстати, дарагуля, двойки получше к нику прибей, а то при очередном надувании щек ненароком отвалятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2017, 15:08 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
o-oaleks222пропущено... А ты не слушай идиотов. Varchar хранит БАЙТЫ, т.е. восьмибитные заначения от 0 до 255. И срал он на коллейшн. Это лехко проверить. Напихайте туды любой шняги и смените коллэйшн поля или унесите базу на сервер с другим коллэйшн - ничего не изменится. Более того, сама возможность писать Код: sql 1. намекает на ЭТО. пропущено... Шедевр идиотизма. Байты остаются байтами. Всегда. наивный чукотский дарагуля, получи-ка картинкой ответ репро-код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. пояснения. в таблице 2 поля-варчара, один с кириллическим коллэйшеном, другой с греческим. кладем в первое поле кириллицу. во второе кладем те же самые байты, просто тупо копируем их из первого. для тех, кто еще сомневается, что байты все те же, выведем их селектом в виде Код: sql 1. 2. ну а теперь кажется алекс обещал нам одинаковый результат при селекте, ведь байты все те же? ну, убеждаемся в их "одинаковости" при селекте в виде варчара. да, варчара, дарагуля, ибо ТС не про варбайнари спрашивал, а про варчар. и сервер ему байты (те же самые байты!) отдает в соответствии с коллэйшеновой кодовой страницей. нет, конечно, последователи алекса-трижды двоечника могут продолжить работу именно с варбайнари, ведь поле оно на то и объявлено варчаровым, чтобы оттуда выгребать именно байты. ну или может нас спасет col_gr collate cyrillic_general_ci_as? результаты на картинке, код приложен. запускайте, проверяйте. алекс, что бы ты ни говорил, ты ВАСЯ. кстати, дарагуля, двойки получше к нику прибей, а то при очередном надувании щек ненароком отвалятся И как картинка КЛИЕНТСКОГО приложения опровергает то, что сказано мною? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2017, 16:28 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
ну так научи страдальца, как получить кириллицу из второй колонки моей таблицы. что-то aField collate ТраЛяЛя не канает. и оказывается, это не сервер отдал мне кириллицу, а SSMS? ну так ты научи, как напрямую, без использования клиента, данные из таблицы получать. заодно посмотрим, что тебе вернут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2017, 16:40 |
|
||
|
Collation vs nvarchar vs localisation
|
|||
|---|---|---|---|
|
#18+
o-o, прочитал ваш диалог, может поможете? не могу работать с кирилицей проблема в обмене данных с содержанием русских слов(на кирилице), победить настройками параметров на связанном сервере(Use remote collation, Collation compatible, Collation name), настройкой драйвера ODBC (OEM/ANSI conversion), параметры DB-library в клиенте SQL Server (Автоматическое преобразование ANSI->OEM) есть подключенный связанный сервер actian psql v.13 и БД с code page cp866 и Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Enterprise Edition подскажите комбинацию параметров, немного (слабо сказано запутался) нужно волшебного пенделя. Column Id_вет! Sasha ??????! Sasha ??????! Sasha Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx Id_вет! DuceNucken must die AEIЕD AAДEI ЕAAЕIЬЕAEx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 22:34 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39506637&tid=1686919]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 458ms |

| 0 / 0 |
