[Rt-devel] problem with UTF-8 CustomFields

Yedidyah Bar-David didi at isoc.org.il
Thu Jul 9 13:02:22 EDT 2009


Hi all,

We use Debian Lenny's requesttracker-3.6 (RT 3.6.7).

When we try to create a custom field value with some Hebrew chars, we
get this in "Results":
* field1 SOMETHING changed to SOMETHINGELSE
* SOMETHINGELSE is no longer a value for custom field field1
and the field is empty.

It happens in RTFM, but I do not think it's relevant only to it.

I tried to debug this, and eventually found:
ObjectCustomFieldValue_Overlay.pm, sub Create, line 56:

if( $args{'Content'} && length($args{'Content'}) > 255 && !$args{'LargeContent'} ) {

I understand from this that there is special treatment of long (>255)
fields, but the test is on length($args{'Content'}), which is in
chars, while the restriction is (probably?) for the storage, which
is in bytes. Having seen that, I tried saving values of various
lengths, and indeed, if I save things a bit longer, it works (as
they are converted to LargeContent). I tried (for a test) to change
the code above to "> 127", to make it convert also shorter values,
and it did not work - it had some other wrong behaviour. I guess
there is some other code that deals with "> 255" and that all of
it should be converted to check for bytes and not chars. I am not
fluent enough in perl/RT to do this myself currently.

I looked at the code, and it seems to be the same in RT 3.8.4.

Best regards,
-- 
Yedidyah Bar David
System Administrator, ISOC-IL



More information about the Rt-devel mailing list