Error with unicode chars in http-binding

Hi. First of all thanks for such a piece of code!

I’m on windows using Candy Chat + Apache (XAMPP) + Openfire 3.10.0.

Well, when I use Pidgin everythink works fine with unicode chars, like ‘€’. Nevertheless when I go through the Candy Chat html5 interface I see the typical “€” which are the 3 bytes of the € unicode character in ASCII (0xE2 0x82 0xAC - e282ac). I suppose that was a mistake when the Apache http proxy module forwarded the request to the 7070 http-bind port on the openfire side but after some sniffing I saw that the payload were identical to the one sent by the Pidgin desktop app. In fact I wrote by myself a module in Java and the behavior was exactly the same.

I’d like to comment also that if I write the unicode char in the Pidgin interface I can see the unicode char perfectly in the chat html5 interface, so the error only appears when I’m sending the data TO the http-bind 7070 port. If I use the 5222 port directly everything works fine.

When I activate the dump log files in openfire I see that the € character is correctly written when I use the Pidgin native tool and I got the 3 messed chars when I go through the http-bind port.

It looks like that the Openfire http-bind port assume that the input is ANSI.

Could you please help me with that?

Many thanks in advance.

/Edu

Solved!!

I just have to add a file openfired.vmoptions in the bin directory with the line:

-Dfile.encoding=UTF-8

And it works like a charm!! Apparently the Jetty runtime doesn’t handle utf-8 request out of box.

ref: https://igniterealtime.org/issues/browse/OF-154

Thanks!