|
|
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
свои слова 03:42 беру обратно. это я по пьяни опять коннектился 1251. :) сегодня, по трезвому, с конектом utf8 сохраняется правильно. но с разными чарсетами одновременно работать не получается. красиво отдаются данные только в кодировке коннекта. придется все держать в utf8. всем спасибо за поддержку, дальше, скорее всего, справлюсь. -- с Новым Годом! Всем желаю интересных проектов и щедрых заказчивов! :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2015, 14:31 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
booratinoпридется все держать в utf8Это всего лишь однократно выгрузить метаданные в скрипт, автозаменой поправить чарсеты и вперед. Потом влить данные тем же ибпумп-ом, например. Да, не забыть, что длина чар-варчар не более 8к (а не 32к, как при вин1251). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2015, 20:26 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
[quot Ivan_PisarevskyЭто всего лишь однократно выгрузить метаданные в скрипт, автозаменой поправить чарсеты и вперед. Потом влить данные тем же ибпумп-ом, например. [/quot] я так не умею. написал быстренько экспорт в txt (utf-8), и таким же образом залил обратно. :) не, ну мне, все же, не понятно. я был в полной уверенности, что TField.DataSize будет возвращать фактический размер данных, а он для ansi размером 250 возвращал 251, в для utf-8 размером 250 возвращает 1001. это так и должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 05:29 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
booratino> не, ну мне, все же, не понятно. я был в полной уверенности, что TField.DataSize будет возвращать фактический размер данных, а он для ansi размером 250 возвращал 251, в для utf-8 размером 250 > возвращает 1001. это так и должно быть? Я понимаю, что я пьян уже 72 часа, но это, млин, через всё перешагивает!!! 8-О -- Vladimir A.Bakhvaloff Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 07:17 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
booratinoне, ну мне, все же, не понятно. я был в полной уверенности, что TField.DataSize будет возвращать фактический размер данных, а он для ansi размером 250 возвращал 251, в для utf-8 размером 250 возвращает 1001. это так и должно быть? Да, почитай в хелпе про TField.DataSize. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 07:34 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
IBExpertпочитай в хелпе про TField.DataSize. А заодно и FAQ по ссылке на первой странице. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 11:28 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
booratinoдля utf-8 размером 250 возвращает 1001 а вот это любопытно. 1000 или даже 1004 были бы понятны. Но 1000+1 ? http://docwiki.appmethod.com/appmethod/1.14/libraries/en/Data.DB.TField.DataSize ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:13 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
Ariochа вот это любопытно. 1000 или даже 1004 были бы понятны. Но 1000+1 ? Зачем нуль-терминатору четыре байта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 14:08 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
IBExpert, 1) а зачем там вообще нуль-терминатор? разе он запрещён в середине строки? 2) вообще-то нуль - это codepoint, и считать его место в байтах наверное не лучшая идея. Да, конечно, "вадидно самое короткое отображение кодепойнта в байты" и все такое, но похоже на смешивание уровней абстракции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 12:41 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
Arioch, а в чем вопрос? DataSize показывает размер в байтах. На codepoint ему начхать. И ноль, как и первые 127 codepoint, кодируется одним байтом. В середине строки, думаю, он не запрещен, но внутри программы в случае перегона в PAnsiChar будут веселости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 17:10 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
Hello, Fr0st-brutal! You wrote on 13 января 2015 г. 17:12:42: Fr0st-brutal> ноль, как и первые 127 codepoint, кодируется одним байтом. В середине > строки, думаю, он не запрещен не в utf-8 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 17:14 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
МимопроходящийHello, Fr0st-brutal! You wrote on 13 января 2015 г. 17:12:42: Fr0st-brutal> ноль, как и первые 127 codepoint, кодируется одним байтом. В середине > строки, думаю, он не запрещен не в utf-8 Ты про ноль или что-то еще? Если про ноль, то он столь же валиден, как и в ansi строке. Т.е. никакого символа не обозначает, но вполне может попадаться в случае специфических данных (какой-нибудь строковый массив в сишной манере, например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 17:35 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, > На codepoint ему начхать. И ноль, как и первые 127 codepoint, кодируется одним байтом выбери одно. Если "начхать" - но каждую букву резервируются строго 4 байта. а ноль-терминатор не нужен вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 20:33 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalТы про ноль или что-то еще? Если про ноль, то он столь же валиден, как и в ansi строке. В дельфевые ansistring можно, конечно, и нули пихать, но клиент FB про дельфевые ansistring ничего не знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 09:23 |
|
||
|
как писать widestring в firebird в D5?
|
|||
|---|---|---|---|
|
#18+
IBExpertFr0sT-BrutalТы про ноль или что-то еще? Если про ноль, то он столь же валиден, как и в ansi строке. В дельфевые ansistring можно, конечно, и нули пихать, но клиент FB про дельфевые ansistring ничего не знает. Хочешь сказать, что клиент где-то применяет тупые* сишные приемы обращения с 0-term string, игнорируя размер данных, который ему прислал сервер? Не верю, не может же быть все настолько плохо. *Не холиварю, но asciiz - реально самый тупой и неоптимальный способ оперирования строками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1563091]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 453ms |

| 0 / 0 |
