Bug 88033

Summary: non-latin fonts are rendered incorrectly
Product: [Unmaintained] kopete Reporter: fcardone
Component: ICQ and AIM PluginsAssignee: Kopete Developers <kopete-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: bobr, gullevek, ianzag, m.belushkin, michal, mickevi, rathamahata, vitek
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: RedHat Enterprise Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: A temporary workaround patch for Russian-language users

Description fcardone 2004-08-25 16:05:00 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    RedHat RPMs
OS:                Linux

Hello - this is somewhat similar to Bug 70639, ie the encoding of foreign fonts is not working correctly - in my case, it's cyrillic.

*However*, the problem is that in kopete 0.8.4 everything was OK, "foreign" fonts were rendered correctly. 

In 0.9.0 they come OK in the contact list - I have names in Cyrillic, Hebrew and Greek - however it the messages the encoding is not set OK.

I am using UTF-8 as a "standard" font in my computer, and obviously people are writing to me in other fonts.

Probably you changed something from 0.8.4 to 0.9.0 which was working correctly...

FLAVIO
Comment 1 fcardone 2004-08-25 17:01:37 UTC
Hello - just tried setting the individual preferences for ICQ to give the contacts a custom encoding. Also not working, cyrillic always comes incorrect...
Comment 2 fcardone 2004-08-26 00:12:14 UTC
OK, here's further information on this bug - it's worse than you would think, because ICQ no longer works OK: all contacts on ICQ get "cannot determine contact status".

This happens both with your newest Kopete included in kdenetwork 3.3 *AND* the CVS version. I replaced kdenetwork 3.3 with 3.2.3 (which provides Kopete 0.8.4) and everything was fine.

Pity, though, because 0.9.0 had some new interesting features. Anyway, 0.9.0 would not give the proper encoding on ICQ, would not give the correct status of the contacts and would not even allow me to retrieve my own data from the server.

It seems as if someone placed on 0.9.0 the old plugin from the pre-0.8.4 version.
Comment 3 fcardone 2004-08-26 08:49:23 UTC
Hello -

just tried binaries from other kdenetwork distributions. ICQ is not working on any kopete binary - tried Redhat and SuSE
Comment 4 A. Sopicki 2004-09-01 13:40:09 UTC
I'm having nearly the same problem with some german characters from other Kopete users with UTF-8 encoding. I'm using Kopete from KDE 3.3.3 on Fedora Core 2. Tried to change the font but that doesn't work either. Unfortunately you can't set the encoding for the user to Unicode. The problem doesn't occur with people using ISO-Encoding.
Comment 5 Matt Rogers 2004-09-13 16:09:18 UTC
*** Bug 89188 has been marked as a duplicate of this bug. ***
Comment 6 fcardone 2004-09-19 11:49:39 UTC
Found out new source of trouble. Kopete cannot read properly the status of ICQ contacts - if you happen to be upgrading from kopete 0.8.4 (as in my case). ICQ contacts come correctly ONLY if you delete/rename the .kopete file and then readd all manually. However, encodings are STILL incorrectly rendered...
Comment 7 Pavel Korshunov 2004-10-19 18:47:42 UTC
*** This bug has been confirmed by popular vote. ***
Comment 8 Pavel Korshunov 2004-10-23 18:37:35 UTC
When the bug will be corrected??
Comment 9 Richard Smith 2004-10-23 18:55:18 UTC
Probably shortly after someone figures out how to correct it.
Comment 10 Matt Rogers 2004-10-25 14:31:16 UTC
*** Bug 92063 has been marked as a duplicate of this bug. ***
Comment 11 Matt Rogers 2004-10-25 17:45:24 UTC
*** Bug 91925 has been marked as a duplicate of this bug. ***
Comment 12 Alexei Dets 2004-11-22 17:11:18 UTC
I have the same problem on Fedora Core 3 + kopete-0.9.1 (KDE-3.3.1 from kde-redhat.sf.net) with Russian characters: I can see perfectly what I'm typing, everybody receives my messages in correct encoding, but I'm unable to read replies - looks like they are converted to iso8859-1 encoding, I receive Latin letters instead of Cyrillic :-( This is happening with ICQ. System locale is en_US.UTF-8.
Comment 13 Matt Rogers 2004-11-23 15:14:52 UTC
*** Bug 93772 has been marked as a duplicate of this bug. ***
Comment 14 Gleb Litvjak 2004-12-03 18:35:22 UTC
I can confirm this - I am using Gentoo and KDE 3.3.1. Does anyone have a clue concerning this issue? This bug is very annoying.
Comment 15 Gleb Litvjak 2004-12-03 19:35:53 UTC
I had a look at the sources. The file kopete/protocols/oscar/oscarsocket/oscarsocket.icq.cpp has some comments like "//TODO: encoding" 
 But the functions in that file only send data, so problem probably isn't there. 
 
 The second interesting place is in the file kopete/kopete/chatwindow/chatview.cpp (line 197). I have a crazy idea: what if the encoding of the chat window is set incorrectly? I am not a great programmer, so this is just a guess. 
 
Comment 16 Matt Rogers 2004-12-03 21:03:43 UTC
i would guess that if the encoding of the chatwindow isn't set to utf-8, then it's  probably incorrect, but this is just a guess. 
Comment 17 Matt Rogers 2004-12-17 06:27:07 UTC
*** Bug 93057 has been marked as a duplicate of this bug. ***
Comment 18 Matt Rogers 2004-12-17 06:27:53 UTC
*** Bug 91808 has been marked as a duplicate of this bug. ***
Comment 19 Max Belushkin 2005-01-13 14:26:16 UTC
It's been mentioned LICQ treats encoding fine (LICQ 1.3.0 on SuSE 9.2 does, at least). I'm currently confined to running both Kopete (0.9.0 on KDE 3.3.0 from SuSE 9.2 RPMs) for non-ICQ contacts and LICQ for ICQ ones to have proper encoding... is there any roadmap, any ideas on when this bug might get looked at? :(
Comment 20 Ian Zagorskih 2005-01-13 14:34:09 UTC
I can only say that for example SIM ICQ/Jabber client handles codepages just fine (at least with russian language). Had to use it now and futher until Kopete is fixed. You can find SIM at http://sim-icq.sourceforge.net/

// wbr
Comment 21 Matt Rogers 2005-01-23 15:43:00 UTC
*** Bug 97719 has been marked as a duplicate of this bug. ***
Comment 22 Matt Rogers 2005-01-25 16:10:51 UTC
CVS commit by mattr: 

Merge the oscar_rewrite branch into HEAD. There are a ton of changes here
and while i'm not going to go over them one by one, here's a brief overview
of some of the things that have changed.

- Delayed contact creation. Contacts aren't created on the kopete list until
  we get a confirmation back from the server that they were added correctly.
 
- Timestamps of received offline messages are correct now (#45751)

- Hopefully, many many encoding problems with message receiving are fixed
  (#88033, #97116, #43701)

- Contacts that require authorization are now marked by a red 'X' over their
  icon. 

- Asking for and getting contact list authorization should be much more 
  user friendly.

- All the reported crashes (except for two dealing with ICQ RTF) are fixed

- Contact list handling in general should be more robust.

All in all, there are just a ton of changes and hopefully, your AIM and ICQ
experience within kopete should become more enjoyable. 

BUG: 92115
BUG: 97411
BUG: 86471
BUG: 88062
BUG: 89505
BUG: 89982
BUG: 90353
BUG: 87714
BUG: 88033
BUG: 97116
BUG: 45751
BUG: 43701
BUG: 86502
BUG: 93631
BUG: 95702
BUG: 84688
BUG: 92888


  M +4 -6      Makefile.am   1.32
  M +46 -13    TODO   1.12
  M +299 -609  oscaraccount.cpp   1.161
  M +61 -131   oscaraccount.h   1.73
  M +121 -663  oscarcontact.cpp   1.166
  M +83 -196   oscarcontact.h   1.89
  M +57 -0     oscarmyselfcontact.cpp   1.2
  M +59 -0     oscarmyselfcontact.h   1.2
  M +2 -2      aim/Makefile.am   1.10
  M +91 -179   aim/aimaccount.cpp   1.50
  M +43 -54    aim/aimaccount.h   1.20
  M +158 -248  aim/aimcontact.cpp   1.65
  M +64 -74    aim/aimcontact.h   1.24
  M +23 -34    aim/aimprotocol.cpp   1.29
  M +56 -57    aim/aimprotocol.h   1.11
  M +67 -64    aim/aimuserinfo.cpp   1.18
  M +0 -1      aim/aimuserinfo.h   1.10
  M +1 -1      aim/kopete_aim.desktop   1.33
  M +1 -1      aim/ui/Makefile.am   1.4
  M +2 -4      aim/ui/aimaddcontactpage.cpp   1.10
  M +8 -14     aim/ui/aimaddcontactpage.h   1.4
  M +13 -4     aim/ui/aimeditaccountui.ui   1.31
  M +40 -35    aim/ui/aimeditaccountwidget.cpp   1.23
  M +21 -17    aim/ui/aimeditaccountwidget.h   1.9
  M +4 -7      icq/Makefile.am   1.12
  M +201 -228  icq/icqaccount.cpp   1.58
  M +70 -54    icq/icqaccount.h   1.24
  M +218 -279  icq/icqcontact.cpp   1.67
  M +86 -130   icq/icqcontact.h   1.30
  M +226 -0    icq/icqpresence.cpp   1.2
  M +176 -0    icq/icqpresence.h   1.2
  M +72 -372   icq/icqprotocol.cpp   1.63
  M +62 -73    icq/icqprotocol.h   1.17
  M +1 -1      icq/kopete_icq.desktop   1.36
  M +0 -2      icq/ui/.cvsignore   1.4
  M +7 -4      icq/ui/Makefile.am   1.5
  M +85 -344   icq/ui/icqadd.ui   1.12
  M +38 -262   icq/ui/icqaddcontactpage.cpp   1.21
  M +26 -35    icq/ui/icqaddcontactpage.h   1.8
  M +69 -0     icq/ui/icqauthreplydialog.cpp   1.2
  M +45 -0     icq/ui/icqauthreplydialog.h   1.2
  M +202 -0    icq/ui/icqauthreplyui.ui   1.2
  M +136 -141  icq/ui/icqeditaccountui.ui   1.47
  M +33 -472   icq/ui/icqeditaccountwidget.cpp   1.43
  M +19 -42    icq/ui/icqeditaccountwidget.h   1.18
  M +481 -0    icq/ui/icqgeneralinfo.ui   1.2
  M +68 -0     icq/ui/icqotherinfowidget.ui   1.2
  M +442 -0    icq/ui/icqsearchbase.ui   1.2
  M +141 -0    icq/ui/icqsearchdialog.cpp   1.2
  M +60 -0     icq/ui/icqsearchdialog.h   1.2
  M +138 -0    icq/ui/icquserinfowidget.cpp   1.2
  M +55 -0     icq/ui/icquserinfowidget.h   1.2
  M +219 -0    icq/ui/icqworkinfowidget.ui   1.2
  M +2 -0      liboscar/.cvsignore   1.2
  M +12 -0     liboscar/DESIGN   1.2
  M +194 -0    liboscar/HACKING   1.2
  M +28 -0     liboscar/Makefile.am   1.2
  M +77 -0     liboscar/TODO   1.2
  M +382 -0    liboscar/aimlogintask.cpp   1.2
  M +82 -0     liboscar/aimlogintask.h   1.2
  M +91 -0     liboscar/blmlimitstask.cpp   1.2
  M +43 -0     liboscar/blmlimitstask.h   1.2
  M +474 -0    liboscar/buffer.cpp   1.2
  M +248 -0    liboscar/buffer.h   1.2
  M +270 -0    liboscar/bytestream.cpp   1.2
  M +78 -0     liboscar/bytestream.h   1.2
  M +206 -0    liboscar/changevisibilitytask.cpp   1.2
  M +58 -0     liboscar/changevisibilitytask.h   1.2
  M +675 -0    liboscar/client.cpp   1.2
  M +368 -0    liboscar/client.h   1.2
  M +115 -0    liboscar/clientreadytask.cpp   1.2
  M +44 -0     liboscar/clientreadytask.h   1.2
  M +270 -0    liboscar/closeconnectiontask.cpp   1.2
  M +67 -0     liboscar/closeconnectiontask.h   1.2
  M +207 -0    liboscar/connection.cpp   1.2
  M +154 -0    liboscar/connection.h   1.2
  M +62 -0     liboscar/connector.cpp   1.2
  M +59 -0     liboscar/connector.h   1.2
  M +245 -0    liboscar/coreprotocol.cpp   1.2
  M +109 -0    liboscar/coreprotocol.h   1.2
  M +66 -0     liboscar/errortask.cpp   1.2
  M +39 -0     liboscar/errortask.h   1.2
  M +72 -0     liboscar/flapprotocol.cpp   1.2
  M +46 -0     liboscar/flapprotocol.h   1.2
  M +134 -0    liboscar/icbmparamstask.cpp   1.2
  M +55 -0     liboscar/icbmparamstask.h   1.2
  M +113 -0    liboscar/icqlogintask.cpp   1.2
  M +47 -0     liboscar/icqlogintask.h   1.2
  M +151 -0    liboscar/icqtask.cpp   1.2
  M +63 -0     liboscar/icqtask.h   1.2
  M +213 -0    liboscar/icquserinfo.cpp   1.2
  M +195 -0    liboscar/icquserinfo.h   1.2
  M +224 -0    liboscar/icquserinfotask.cpp   1.2
  M +75 -0     liboscar/icquserinfotask.h   1.2
  M +100 -0    liboscar/inputprotocolbase.cpp   1.2
  M +72 -0     liboscar/inputprotocolbase.h   1.2
  M +86 -0     liboscar/locationrightstask.cpp   1.2
  M +57 -0     liboscar/locationrightstask.h   1.2
  M +219 -0    liboscar/logintask.cpp   1.2
  M +144 -0    liboscar/logintask.h   1.2
  M +392 -0    liboscar/md5.c   1.2
  M +93 -0     liboscar/md5.h   1.2
  M +236 -0    liboscar/messagereceivertask.cpp   1.2
  M +102 -0    liboscar/messagereceivertask.h   1.2
  M +159 -0    liboscar/offlinemessagestask.cpp   1.2
  M +54 -0     liboscar/offlinemessagestask.h   1.2
  M +97 -0     liboscar/onlinenotifiertask.cpp   1.2
  M +60 -0     liboscar/onlinenotifiertask.h   1.2
  M +138 -0    liboscar/oscarbytestream.cpp   1.2
  M +72 -0     liboscar/oscarbytestream.h   1.2
  M +425 -0    liboscar/oscarclientstream.cpp   1.2
  M +165 -0    liboscar/oscarclientstream.h   1.2
  M +108 -0    liboscar/oscarconnector.cpp   1.2
  M +69 -0     liboscar/oscarconnector.h   1.2
  M +349 -0    liboscar/oscartypeclasses.cpp   1.2
  M +210 -0    liboscar/oscartypeclasses.h   1.2
  M +252 -0    liboscar/oscartypes.h   1.2
  M +252 -0    liboscar/oscarutils.cpp   1.2
  M +75 -0     liboscar/oscarutils.h   1.2
  M +86 -0     liboscar/ownuserinfotask.cpp   1.2
  M +53 -0     liboscar/ownuserinfotask.h   1.2
  M +72 -0     liboscar/prmparamstask.cpp   1.2
  M +42 -0     liboscar/prmparamstask.h   1.2
  M +116 -0    liboscar/profiletask.cpp   1.2
  M +56 -0     liboscar/profiletask.h   1.2
  M +228 -0    liboscar/rateclass.cpp   1.2
  M +126 -0    liboscar/rateclass.h   1.2
  M +157 -0    liboscar/rateclassmanager.cpp   1.2
  M +76 -0     liboscar/rateclassmanager.h   1.2
  M +172 -0    liboscar/rateinfotask.cpp   1.2
  M +64 -0     liboscar/rateinfotask.h   1.2
  M +2427 -0   liboscar/rtf.cc   1.2
  M +864 -0    liboscar/rtf.ll   1.2
  M +207 -0    liboscar/rtf2html.h   1.2
  M +139 -0    liboscar/safedelete.cpp   1.2
  M +79 -0     liboscar/safedelete.h   1.2
  M +94 -0     liboscar/senddcinfotask.cpp   1.2
  M +41 -0     liboscar/senddcinfotask.h   1.2
  M +57 -0     liboscar/sendidletimetask.cpp   1.2
  M +46 -0     liboscar/sendidletimetask.h   1.2
  M +203 -0    liboscar/sendmessagetask.cpp   1.2
  M +47 -0     liboscar/sendmessagetask.h   1.2
  M +166 -0    liboscar/serverversionstask.cpp   1.2
  M +57 -0     liboscar/serverversionstask.h   1.2
  M +123 -0    liboscar/servicesetuptask.cpp   1.2
  M +69 -0     liboscar/servicesetuptask.h   1.2
  M +102 -0    liboscar/snacprotocol.cpp   1.2
  M +46 -0     liboscar/snacprotocol.h   1.2
  M +50 -0     liboscar/ssiactivatetask.cpp   1.2
  M +38 -0     liboscar/ssiactivatetask.h   1.2
  M +196 -0    liboscar/ssiauthtask.cpp   1.2
  M +60 -0     liboscar/ssiauthtask.h   1.2
  M +157 -0    liboscar/ssilisttask.cpp   1.2
  M +109 -0    liboscar/ssilisttask.h   1.2
  M +429 -0    liboscar/ssimanager.cpp   1.2
  M +131 -0    liboscar/ssimanager.h   1.2
  M +448 -0    liboscar/ssimodifytask.cpp   1.2
  M +127 -0    liboscar/ssimodifytask.h   1.2
  M +99 -0     liboscar/ssiparamstask.cpp   1.2
  M +43 -0     liboscar/ssiparamstask.h   1.2
  M +31 -0     liboscar/stream.cpp   1.2
  M +75 -0     liboscar/stream.h   1.2
  M +286 -0    liboscar/task.cpp   1.2
  M +114 -0    liboscar/task.h   1.2
  M +367 -0    liboscar/transfer.cpp   1.2
  M +169 -0    liboscar/transfer.h   1.2
  M +354 -0    liboscar/userdetails.cpp   1.2
  M +85 -0     liboscar/userdetails.h   1.2
  M +153 -0    liboscar/userinfotask.cpp   1.2
  M +69 -0     liboscar/userinfotask.h   1.2
  M +173 -0    liboscar/usersearchtask.cpp   1.2
  M +61 -0     liboscar/usersearchtask.h   1.2
  M +93 -0     liboscar/warningtask.cpp   1.2
  M +59 -0     liboscar/warningtask.h   1.2
  M +7 -0      liboscar/tests/.cvsignore   1.2
  M +19 -0     liboscar/tests/Makefile.am   1.2
  M +49 -0     liboscar/tests/clientstream_test.cpp   1.2
  M +49 -0     liboscar/tests/clientstream_test.h   1.2
  M +56 -0     liboscar/tests/logintest.cpp   1.2
  M +53 -0     liboscar/tests/logintest.h   1.2
  M +73 -0     liboscar/tests/ssigrouptest.cpp   1.2
  M +54 -0     liboscar/tests/ssigrouptest.h   1.2
  M +111 -0    liboscar/tests/ssitest.cpp   1.2
  M +34 -0     liboscar/tests/ssitest.h   1.2
  M +67 -0     liboscar/tests/userinfotest.cpp   1.2
  M +53 -0     liboscar/tests/userinfotest.h   1.2
  R            Doxyfile   1.3
  R            README.login   1.1
  R            icq/icqsendsmsdialog.cpp   1.1
  R            icq/icqsendsmsdialog.h   1.1
  R            icq/icquserinfo.cpp   1.21
  R            icq/icquserinfo.h   1.11
  R            oscarsocket/.cvsignore   1.1
  R            oscarsocket/Makefile.am   1.25
  R            oscarsocket/aim.cpp   1.9
  R            oscarsocket/aim.h   1.8
  R            oscarsocket/buffer.cpp   1.44
  R            oscarsocket/buffer.h   1.31
  R            oscarsocket/md5.c   1.1
  R            oscarsocket/md5.h   1.1
  R            oscarsocket/oncomingsocket.cpp   1.23
  R            oscarsocket/oncomingsocket.h   1.11
  R            oscarsocket/oscar_fam01.cpp   1.3
  R            oscarsocket/oscar_fam04.cpp   1.10
  R            oscarsocket/oscar_fam19.cpp   1.10
  R            oscarsocket/oscarcaps.cpp   1.5
  R            oscarsocket/oscarcaps.h   1.4
  R            oscarsocket/oscarconnection.cpp   1.32
  R            oscarsocket/oscarconnection.h   1.24
  R            oscarsocket/oscardebug.h   1.5
  R            oscarsocket/oscardirectconnection.cpp   1.24
  R            oscarsocket/oscardirectconnection.h   1.10
  R            oscarsocket/oscarfilesendconnection.cpp   1.14
  R            oscarsocket/oscarfilesendconnection.h   1.8
  R            oscarsocket/oscarmessage.cpp   1.6
  R            oscarsocket/oscarmessage.h   1.1
  R            oscarsocket/oscarsocket.aim.cpp   1.33
  R            oscarsocket/oscarsocket.cpp   1.213
  R            oscarsocket/oscarsocket.h   1.126
  R            oscarsocket/oscarsocket.icq.cpp   1.73
  R            oscarsocket/oscarsocket.icq.h   1.14
  R            oscarsocket/oscartypes.h   1.9
  R            oscarsocket/rateclass.cpp   1.5
  R            oscarsocket/rateclass.h   1.3
  R            oscarsocket/rtf.cc   1.5
  R            oscarsocket/rtf.ll   1.5
  R            oscarsocket/rtf2html.h   1.2
  R            oscarsocket/ssidata.cpp   1.22
  R            oscarsocket/ssidata.h   1.16



Comment 23 vadim 2005-05-18 23:05:42 UTC
The  bug was not fixed, reopen it please
Comment 24 Alexander Terekhov 2005-05-20 10:04:23 UTC
This bug still exists in KOpete 0.10 / KDE 3.4
Comment 25 andu 2005-06-29 20:37:27 UTC
I do have this bug.

kopete --version
Qt: 3.3.4
KDE: 3.3.2
Kopete: 0.9.2
Comment 26 Dmitry Suzdalev 2005-07-04 18:44:07 UTC
This bug is still there.
This bug is the only thing that makes me use Sim instead of Kopete.

Please, fix this bug! :)

kopete --version
Qt: 3.3.3
KDE: 3.4.1
Kopete: 0.10.2
Comment 27 Sergey S. Kostyliov 2005-07-25 11:43:46 UTC
Please reopen this bug. It still there.
Comment 28 Petr Kopecký 2005-08-22 14:10:33 UTC
Indeed - I think as well that this bug is still present and should be reopen :-(
Comment 29 Leonid Zeitlin 2005-09-25 17:15:11 UTC
Created attachment 12702 [details]
A temporary workaround patch for Russian-language users

I am attaching a patch (which works against Kopete in kdenetwork 3.4.1 and
3.4.2) that helps this problem for Russian-language users at least in many
cases. Please note that this is a crude hack, which assumes that any message
not in Unicode is in Russian CP1251 encoding. As such, it is not meant for
inclusion in official Kopete. But this works for me an may help others. A real
solution may work along these lines, but instead of hard-coding CP1251 encoding
name, would use contact or global default encoding. Users of other encodings
may benefit from this patch if they replace "CP1251" with the name of their
favorite encoding. Comments welcome.