|
|
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Методы решения мне видятся исключительно организационые: 1) Забить (более мягкий вариант - добавлять всяких разъяснений, почему буква с закорючкой идет за два символа) 2) Втихую делать длину поля на N% больше 3) Вообще не ограничивать размеры полей в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 14:26:11 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
hvladты проверял возможность такого сценария ? Нет, чистое теоретизирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 14:26:52 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
hvladFr0sT-Brutal, ты проверял возможность такого сценария ? Сейчас проверил, оказался прав (хотя и не сомневался) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 16:05:52 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalСейчас проверил, оказался прав (хотя и не сомневался)И можно узнать подробности этой проверки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 17:11:38 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В ИБЭ ввожу "Иван" - ОК, "Ива́н" - SQL error code = -303. arithmetic exception, numeric overflow, or string truncation. string right truncation. И это, в общем-то, абсолютно правильно, т.к. а́ здесь - это "а"+"ударение", а не "а с ударением". Т.е. все верно и ожидаемо, но это я к тому, что есть дофига подобных модификаторов, на самом деле занимающих место символа в строке, и на это надо как-то закладываться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 17:36:50 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalВ ИБЭ ввожу "Иван" - ОК, "Ива́н" - SQL error code = -303. arithmetic exception, numeric overflow, or string truncation. string right truncation. И это, в общем-то, абсолютно правильно, т.к. а́ здесь - это "а"+"ударение", а не "а с ударением". Т.е. все верно и ожидаемо, но это я к тому, что есть дофига подобных модификаторов, на самом деле занимающих место символа в строке, и на это надо как-то закладываться1. Какой чарсет коннекта в IBE ? 2. Как вводятся данные ? Параметры или строковый литерал ? 3. Как я могу ввести такие данные ? 4. Как это воспроизвести с isql ? Пока что я не могу быть уверен, что проблема не в клиентском приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 18:18:29 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalВ ИБЭ ввожу "Иван" - ОК, "Ива́н" - SQL error code = -303. Я в FARе ввожу "Ивáн" и получаю файл размеров 11 байт. Вычитая три байта BOM, получаем ровно 8 байт, что легко влазит в CHAR(4). Так что вся проблема в том как IBE перекодирует твою строку в utf-8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 18:33:04 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Формы нормализации . P.S. Составные символы это не придурь, а реальность. Нет в юникоде "одного кода на символ". Очень хотели сделать, но "не шмогла я, мужик, не шмогла". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 18:45:55 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalВ ИБЭ ввожу "Иван" - ОК, "Ива́н" - SQL error code = -303. arithmetic exception, numeric overflow, or string truncation. string right truncation.Что-то странно. Я создал вот это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. И затем делаю в UTF8-консоли линуха: Код: plaintext 1. 2. 3. 4. 5. скрипт с иваном в чарсете UTF8 - см аттач. Там в строке 8 знаков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 18:48:08 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
hvlad, 1. utf8 + RUSSIAN_CHARSET 2. тупо paste в грид 3. я набрал в ворде (ударение вводится через alt+0769 на цифровой клаве) 4. что-то совсем нет желания воспроиводить через комстроку, проблема-то не моя :) авторЯ в FARе ввожу "Ивáн" Угу, при конвертации где-то буквы нормализовываются (а́ на á - смотреть в хексе!). У меня это 0x0430 0x0301 и 0x00E1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 18:54:25 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
В общем, еще раз, грубо: есть символы "а с ударением", а есть символ "а" и символ "ударение над предыдущим символом". Последний есть "модификатор" (официального названия не знаю - возможно, Bazil подскажет) - и их реально много (штрихи, тильды, черточки, точки, кружочки, да еще сверху/снизу). И то, что при отображении занимает одно знакоместо - может в строке занимать десяток юникодных символов (code point, точнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 19:00:48 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal"Ива́н" - SQL error code = -303. arithmetic exception, numeric overflow, or string truncation. string right truncation.ну в Edit с MaxLength=4 этот Иван закономерно не влазит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2013, 20:43:10 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
fd00ch, это частный случай применения в среде, которую здесь никто не знает ©. Причем даже там могут применяться и гриды, и обычные edit, и другие редакторы, не подтягивающие maxlength из метаданных. А ТС, например, вообще говорил об админке, а значит, подразумевается веб. В любом случае, ФБ тут ни при чем, а вопрос скорее в проектировании системы. Я бы сделал тихое увеличение указанной юзером длины на 50%. С этими юникодными кунштюками всплывает другая проблема, уже посерьезнее, а именно - поиск по таким полям. Но это опять же вопрос проектирования ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 11:36:08 |
|
||
|
VARCHAR(N) CHARACTER SET UTF8. Какой нужен N?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutalfd00ch, это частный случай применения в среде, которую здесь никто не знает ©ты про винду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 18:45:39 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38489241&tid=1564083]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 435ms |

| 0 / 0 |
