Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
Hi уважаемый all. есть поле в таблице, тип: varchar(255). (база в UTF-8, т.е. 1208). эксперементируя в своем приложении с длиной UTF-8 строки, обнаружил, что в английской раскладке я могу записать туда все 255 символов, а в русской только 64!!! я ожидал что смогу вписать туда 128 символов (при русской раскладке). Приложение это писано на BCB6, используется OLE provider (IBMDADB2). коннект к базе по tcp/ip. почему 64 а не 128??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 16:55 |
|
||
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
Alexander MushnikovHi уважаемый all. есть поле в таблице, тип: varchar(255). (база в UTF-8, т.е. 1208). эксперементируя в своем приложении с длиной UTF-8 строки, обнаружил, что в английской раскладке я могу записать туда все 255 символов, а в русской только 64!!! я ожидал что смогу вписать туда 128 символов (при русской раскладке). Приложение это писано на BCB6, используется OLE provider (IBMDADB2). коннект к базе по tcp/ip. почему 64 а не 128??? Потому, что размер поля задается в байтах, а не в UTF символах, а один символ в UTF-8 может занимать разное количество байт. Поэтому в UTF-кодировке размер поля нужно задавать с запасом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 17:21 |
|
||
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров Потому, что размер поля задается в байтах, а не в UTF символах, а один символ в UTF-8 может занимать разное количество байт. Поэтому в UTF-кодировке размер поля нужно задавать с запасом. это как раз понятно. вопрос в том, что под русские символы - на 1 символ должно затрачиваться 2 байта, а не 4. тут может быть такое дело - возможно при создании базы надо было какие-то дополнительные параметры указывать, которые влияют на это... еще один момент: в этом поле этой таблицы (в других записях) могут быть кроме руских символов еще и греческие, турецкие, и т.д. НО! японских - нет. если-бы были японские, я-бы мог предположить что именно из-за этого, т.к. для японских надо как-раз 4 байта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 18:58 |
|
||
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
Alexander Mushnikov это как раз понятно. вопрос в том, что под русские символы - на 1 символ должно затрачиваться 2 байта, а не 4. тут может быть такое дело - возможно при создании базы надо было какие-то дополнительные параметры указывать, которые влияют на это... еще один момент: в этом поле этой таблицы (в других записях) могут быть кроме руских символов еще и греческие, турецкие, и т.д. НО! японских - нет. если-бы были японские, я-бы мог предположить что именно из-за этого, т.к. для японских надо как-раз 4 байта. Еще раз, описание CHAR(N) или VARCHAR(N) задает длину поля в N-байт, а не UTF-символов. Т.к. в UTF-базе могут хранится символы любых кодировок, то DB2 сама по себе не может "закладываться", что там будет храниться исключительно русский текст. Это может знать разработчик базы. Поэтому при создании UTF-8 таблицы нужно указать достаточную длину поля. Т.е. если в столбце должно быть 10 русских символов, то нужно описать ее как CHAR(20). Может конечно можно иначе, но не попадалось пока ни в документации ни в форумах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 11:09 |
|
||
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров Еще раз, описание CHAR(N) или VARCHAR(N) задает длину поля в N-байт, а не UTF-символов. Т.к. в UTF-базе могут хранится символы любых кодировок, то DB2 сама по себе не может "закладываться", что там будет храниться исключительно русский текст. Это может знать разработчик базы. Поэтому при создании UTF-8 таблицы нужно указать достаточную длину поля. Т.е. если в столбце должно быть 10 русских символов, то нужно описать ее как CHAR(20). Может конечно можно иначе, но не попадалось пока ни в документации ни в форумах. ну что-ж ... придется с этим фактом тогда смириться. Спасибо за ответ. а по этому вопросу что-нить посоветуете: http://www.sql.ru/forum/actualthread.aspx?tid=403048 ??? успехов Вам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 12:35 |
|
||
|
размерность поля таблицы для базы созданной в 1208 кодировке
|
|||
|---|---|---|---|
|
#18+
JQN8yP A number of universities have awarded her honorary degrees, and she earned a prestigious job on the staff of Detroit congressman John Conyers. In 1988 Roxanne Brown noted: "Thirty-two years after she attracted international attention for sparking the Montgomery Bus Boycott, Mrs. Parks's ardent devotion to human rights still burns brightly, like a well-tended torch that ignites her spirit and calls her to service whenever she is needed." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 07:39 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35215657&tid=1603976]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 429ms |

| 0 / 0 |
