powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как с этим бороться
14 сообщений из 14, страница 1 из 1
Как с этим бороться
    #39694264
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть таблица в ней проблемное поле NAME
оно имеет тип varchar(255)
делаю такой запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
  LENGTH(zzz.Name) AS expr1,
  CHARACTER_LENGTH(zzz.Name) AS expr2,
  CHARACTER_LENGTH(REPLACE(zzz.Name, char(0),'')) AS expr5,
  BIT_LENGTH(zzz.Name) / 8 AS expr3,
  TRIM(zzz.Name) AS expr4,
  zzz.Name
FROM zzz;


получаю такое

expr1expr2expr5expr3expr4Name48282848,0000Неклассифицированные/defaultНеклассифицированные/default99555599,0000Конфеты конти бонжур мини-Крем-брюле (десерт) 3кг акцияКонфеты конти бонжур мини-Крем-брюле (десерт) 3кг акция71414171,0000Торт шоколадный Бриз 250г/Крем-вар.сгущ./Торт шоколадный Бриз 250г/Крем-вар.сгущ./77434377,0000Печенье бкк моск сдобн.фантазия (вишня) 5кгПеченье бкк моск сдобн.фантазия (вишня) 5кг66424266,0000Disney брелок с драже чародейки жб 5г/8x12Disney брелок с драже чародейки жб 5г/8x1254404054,0000Зажигалка пьезо luxe xhd101 wp-surfing 2Зажигалка пьезо luxe xhd101 wp-surfing 260363660,0000Папины дочки драже в пл.яйцо 5г/6x24Папины дочки драже в пл.яйцо 5г/6x241428282142,0000Сухарики гренки Емеля (асс.в масле)(№8 микс) чесн./пер.-сол./том.-базил./сыр-зеленСухарики гренки Емеля (асс.в масле)(№8 микс) чесн./пер.-сол./том.-базил./сыр-зелен
как это можно объяснить, и как с этим бороться?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694273
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

А что не так?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694274
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Длина строки в байтах и в символах для многобайтовых кодировок различается при использовании национальных алфавитов, если Вы об этом.
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694282
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleДлина строки в байтах и в символах для многобайтовых кодировок различается при использовании национальных алфавитов, если Вы об этом.как бы там всё utf8, и должно быть всё по байту.
а тут как получается встречаются и двухбайтовые?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694290
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Utf-8 имеет переменную длину символа в байтах.
В MySQL от 1 до 3 включительно. Русские буквы занимают 2 байта .
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694291
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак бы там всё utf8, и должно быть всё по байту.
Ты не поверишь, но "по байту" в utf-8 только латиница. Кириллица - два байта.
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694313
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftРусские буквы занимают 2 байта .
Dimitry SibiryakovТы не поверишь, но "по байту" в utf-8 только латиница. Кириллица - два байта.
а на цифры посмотреть и сравнить?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694329
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmiksoftРусские буквы занимают 2 байта .
Dimitry SibiryakovТы не поверишь, но "по байту" в utf-8 только латиница. Кириллица - два байта.
а на цифры посмотреть и сравнить?
"Неклассифицированные/default" - 20 кириллических символов, 8 из ASCII = 20 * 2 + 8 = 48 байт, всё правильно. Что именно вас смущает?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694342
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

а остальные?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694343
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij8 из ASCII = 20 * 2 + 8 = 48 байт, всё правильно. Что именно вас смущает?там смесь кодировок?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694351
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMelkij,

а остальные?цифры и большинство общеупотребительных знаков пунктуации - тоже по 1 байту.
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694354
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMelkij,

а остальные?
А остальные мне считать лениво.

вадяMelkij8 из ASCII = 20 * 2 + 8 = 48 байт, всё правильно. Что именно вас смущает?там смесь кодировок?
UTF8 - кодировка с переменной длиной символа. Будет ли после текущего байта новый символ или следующий байт этого же символа - определяется по специально для этому выделенному биту. Каждый символ в зависимости от таблицы кодировок может быть от 1 до 4 байт длиной.
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694410
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
устанавливаю
Name varbinary(255)
тот же запрос
получаю
expr1expr2expr5expr3expr4Name45454545,0000Ящерица тянущаяся, 4 видаЯщерица тянущаяся, 4 вида85858585,0000Ящерица увеличив. 600%, crd 22x 15см, 4 вида, арт.w6328-g129.Ящерица увеличив. 600%, crd 22x 15см, 4 вида, арт.w6328-g129.136136136136,0000Ящерица-тянучка играем вместе ассортим на карт. (русс. уп.) 28x 17см в кор.2x 72штЯщерица-тянучка играем вместе ассортим на карт. (русс. уп.) 28x 17см в кор.2x 72шт13131313,0000Ящик 16лЯщик 16л13131313,0000Ящик 26лЯщик 26л19191919,0000Ящик 40л б/нЯщик 40л б/н28282828,0000Ящик 600x400 x300 хозЯщик 600x400 x300 хоз23232323,0000Ящик 80x40 x 17смЯщик 80x40 x 17см20202020,0000Ящик craft houseЯщик craft house100100100100,0000Ящик curver pets кошка deco madrid s декоративный для аксессуаровЯщик curver pets кошка deco madrid s декоративный для аксессуаров114114114114,0000Ящик curver pets кошка оптима хобби для аксессуаров для животных 15лЯщик curver pets кошка оптима хобби для аксессуаров для животных 15л72727272,0000Ящик darel с крышкой на колесах 56л 61x40 x 31смЯщик darel с крышкой на колесах 56л 61x40 x 31см38383838,0000Ящик Disney тачки 10л c81077Ящик Disney тачки 10л c8107767676767,0000Ящик ekko plast тарный 0.13 куб.м. непищевойЯщик ekko plast тарный 0.13 куб.м. непищевой55555555,0000Ящик plast Team (п) hobby Box jumbo 43x35 x 20смЯщик plast Team (п) hobby Box jumbo 43x35 x 20см
кто распознаёт кодировку?
...
Рейтинг: 0 / 0
Как с этим бороться
    #39694420
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

никто. CHARACTER_LENGTH видит, что ему дали binary - значит binary. Но раз уж запросили, то отвечает сколько там байт.
То что при выводе binary вы видите какой-то текст - услуга клиентского приложения. Для базы binary - блоб каких-то бинарных данных.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как с этим бороться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]