patch in trunk! Thanks Sergey
On Nov 26, 9:48 am, SergeyPo <[EMAIL PROTECTED]> wrote:
> This worked:
>
> ur=unicode(r,'utf8')
> if len(ur)>truncate: r=ur[:truncate-3].encode('utf8') + '...'
>
> Thank you!
>
> On Nov 26, 6:18 pm, mdipierro <[EMAIL PROTECTED]> wrote:
>
> > It is a bug in the sense that the utf8 is truncated while it should be
> > converted to unicode, then truncated.
> > This line in gluon/sqlhtml.py needs to be fixed:
>
> > if len(r)>truncate: r=r[:truncate-3]+'...'
>
> > perhaps replace by
>
> > ur=unicode(r,'utf8)
> > if len(ur)>truncate: r=ur[:truncate-3].encode('utf8')
> > +'...'
>
> > Could you give it a try?
>
> > Anyway you can change the truncate variable. In your code:
>
> > table=SQLTABLE(db().select(db.data_storage.ALL, limitby=
> > (0,20)),truncate=100,
> > _class='flexit', _width='100%')
>
> > On Nov 26, 9:07 am, SergeyPo <[EMAIL PROTECTED]> wrote:
>
> > > Here is a screenshot:http://zarealye.com/snapshot.jpg
> > > Here I try to use flexigrid but the same happens with web2py db
> > > administration page.
> > > You will see black diamonds with questionmark...
> > > These are Russian strings (UTF-8) truncated. Is it possible to
> > > increase the length? Is there not a bug in utf-8 truncation?
> > > I guess, simply u"long russian text"[:10] won't work correctly in
> > > utf.
>
> > > On Nov 26, 5:22 pm, mdipierro <[EMAIL PROTECTED]> wrote:
>
> > > > Can you show us a screen shot to make sure I understand?
>
> > > > It is true that SQLTABLE (on purpose) truncates strings to a fix
> > > > number of characters. Perhaps this is your problem.
>
> > > > If you need a table that displays long string you should make your own
> > > > table
>
> > > > <table>
> > > > {{ for row in db().select(db.data_storage.ALL, limitby=(0,20)): }}
> > > > <tr>
> > > > {{ for field in db.data_storage_fields:}}
> > > > <td>{{=row[field]}}</td>
> > > > {{pass}}
> > > > </tr>
> > > > {{pass}}
> > > > </table>
>
> > > > On Nov 26, 8:13 am, SergeyPo <[EMAIL PROTECTED]> wrote:
>
> > > > > Hello Group!
>
> > > > > When I do in controller:
>
> > > > > table=SQLTABLE(db().select(db.data_storage.ALL, limitby=(0,20)),
> > > > > _class='flexit', _width='100%')
> > > > > return dict(table = table)
>
> > > > > strings that are in database (utf-8 coded) are displayed truncated :
> > > > > part of the string, than question mark in diamond symbol, than eclipse
> > > > > (...)
>
> > > > > Афанас ...
> > > > > Балмак ...
>
> > > > > etc.
>
> > > > > This happens both in my code and in db administration page.
> > > > > When I do:
>
> > > > > print db().select(db.data_storage.ALL, limitby=(0,20))
>
> > > > > I get correct strings in Terminal, so data in database is correct.
>
> > > > > How to fix that?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---