����. I found how to fix it myself.
Why doen't it work.
1. Evolution does not make conversion itself - it uses functions
convert_ToPilotChar and convert_FromPilotChar from pilot-link package
(file util.c)
2. ToPilotChar and convert_FromPilotChar - by default convert only
to/from CP1251
( #define PILOT_CHARSET "CP1252").
Pilot-Link Uses Libiconv for charset conversion
How to make it work:
Install libiconv:
ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
(I couldn't make iconv from Mandrake 8.2 glibc work properly with
pilot-link).
Download http://www.pilot-link.org/source/pilot-link-0.11.3.tar.gz
Apply attached patch
export PILOTCHARSET="Your charset".
(in my case export PILOTCHARSET=KOI8-R)
And voila - everything works fine.
PS: Main Idea adopted from
http://mail.gnome.gr.jp/ml/gnome-devel/200112/msg00000.html
But pilot-link 0.9.5, the guy talked about did not work for me (maybe
something wrong with /dev/hands), so I used pilot-link-0.11.3 and
modified charset patch, 'cause it refused to apply on 0.11.3.
� ���, 13.08.2002, � 17:57, Andrey Tuev �������:
Did Anibody Ever succesfully synced Evo thin pilot in
NON ENGLISH CHARSET????
My pilot is working in koi8.
When i copy data from pilot to evolution i get underscores instead
of letters.
When i copy data from evolution to pilot, i get UTF8 symbols instead
of koi8 symbols.
Anibody, who had experience solving this problem please reply!
--- pilot-link-0.11.3-back/libpisock/util.c Tue Jul 30 19:37:13 2002
+++ pilot-link-0.11.3/libpisock/util.c Fri Aug 16 10:26:34 2002
@@ -32,7 +32,7 @@
#include <iconv.h>
#endif
-#define PILOT_CHARSET "CP1252"
+#define DEFAULT_PILOT_CHARSET "CP1252"
/***********************************************************************
*
@@ -55,8 +55,14 @@
*ob;
iconv_t cd;
size_t ibl, obl;
+ char *charset_env;
+
+ charset_env = getenv("PILOTCHARSET");
+ if (charset_env)
+ cd = iconv_open(charset_env, charset);
+ if (!charset_env || !cd)
+ cd = iconv_open(DEFAULT_PILOT_CHARSET, charset);
- cd = iconv_open(PILOT_CHARSET, charset);
if (!cd)
return -1;
@@ -98,8 +104,14 @@
*ob;
iconv_t cd;
size_t ibl, obl;
+ char *charset_env;
+
+ charset_env = getenv("PILOTCHARSET");
+ if (charset_env)
+ cd = iconv_open(charset_env, charset);
+ if (!charset_env || !cd)
+ cd = iconv_open(DEFAULT_PILOT_CHARSET, charset);
- cd = iconv_open(charset, PILOT_CHARSET);
if (!cd)
return -1;