Pull to refresh

Comments 9

Дак почему тире становится вопросом? (вопрос из заголовка)
Чем отличается понятие collation 'Cyrillic_General_CI_AS' от кодировки, в которой хранятся данные?
Чем отличаются кодировки?
Чем отличаются литералы с «буковкой» N и без нее?

Так много вопросов, и так мало ответов в статье.
Добавив N, мы указали SQL, что обрабатывать данную строку надо как значение в Unicode.
И понятнее не стало, и другие три вопроса остались

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

Думаю, вам нужно название товара не копировать из ворда, а набрать с клавиатуры, в качестве «тире» используя обычный знак минуса. И всё поместится в varchar. Потому что далее это тире ещё аукнется вам, когда вы не сможете ввести его с клавиатуры)
Файл для загрузки создается в Китае.

Был случай как-то не компилировался исходник, думали думали, оказалось тоже какой-то символ приехал с копипастой.

Советую разобраться в поглубже и допилить статью, после прочтения реально больше вопросов осталось, которые теперь не дадут уснуть...

Ответ очевиден.
Потому что это "тире" — не "минус", а "длинное тире".
Длинное тире — это юникодный символ, и, собственно, в однобайтовый, 1 байт на символ, varchar — не помещается.
Collation тут не причем.

Sign up to leave a comment.

Articles