[gnucash-de] Falsche Darstellung von Umlauten im Buchungstext

jh scherom at yahoo.de
Mon Mar 21 04:08:17 EST 2005


Hallo,

ich habe beim Abgleichen mit HBCI keine Probleme mit
den Umlauten.
Jedoch treten Probleme beim Eingeben von
Buchungstexten auf.
Gebe ich bei einer Buchung z.B. ein:
"Zahlung für ein tolles Produkt"
So hört die Darstellung dieses Textes mit dem Umlaut
auf. D.h. es steht nur noch "Zahlung f" da.
Im unteren Rand des Fensters wird jedoch der gesamt
Text angezeigt?
"Zahlung für ein tolles Produkt"
Ich  hatte diese Frage schon vor eine Weile gestellt.
Aber vielleicht gibt es dafür mittlerweile ja ein
Lösung.

Ich benutze Gnucash 1.8.9 auf Max OS 10.3.8.

Grüße und vielen Dank



 --- tadomeit <tadomeit at compuserve.de> schrieb: 
> Hallo Christian,
> 
> vielen Dank für den schnellen Patch!
> Ein erster Test war erfolgreich: Ich habe eine
> Buchung mit verstümmeltem 
> Umlaut gelöscht und erneut über die
> HBCI-Kontenabfrage abgerufen. Die 
> Darstellung ist jetzt korrekt :-) .
> 
> Viele Grüße
> Thomas
> 
> 
> Christian Stimming wrote:
> > Hallo Thomas,
> > 
> > vielen Dank nochmal für die genaue Beschreibung.
> Ich hab nun die korrekte 
> > Konvertierung von den utf-8 Texten in die interne
> gnucash-Encoding mit 
> > eingebaut. Das ist nun im CVS und anhängend ist
> ein patch dafür. Wenn du das 
> > also bei dir ausprobieren/korrigieren möchtest,
> dann geh in deinem 
> > gnucash-Tarball und mach
> > 
> >   cd src/import-export/hbci
> >   patch -p0 < description-utf8.diff
> > 
> > Anschließend gnucash übersetzen und installieren
> und dann sollten die Umlaute 
> > hoffentlich richtig in gnucash ankommen... kannst
> du berichten, wie es läuft? 
> > Das wär gut, weil wie gesagt meine Bank schickt
> mir gar keine Umlaute :-)
> > 
> > Gruß
> > 
> > Christian
> > 
> > Am Mittwoch, 16. März 2005 21:31 schrieb tadomeit:
> > 
> >>Hallo Christian,
> >>
> >>in der Logdatei sieht es noch gut aus.
> >>Beispiel für "ß" in WEIßENSEE
> >>
> >> > hexdump -C 20050310-213851-1.log|grep -A1 PANK
> >>
> >>000067f0
> >>   32 46 49 4e 41 4e 5a 41  4d 54 20 50 41 4e 4b
> 2e  |2FINANZAMT PANK.|
> >>00006800
> >>   2f 57 45 49 df 45 4e 53  45 45 0d 0a 3a 36 31
> 3a  |/WEIßENSEE..:61:|
> >>
> >>Im Kontobuch wird daraus (das Leerzeichen ist als
> kleines Quadrat zu
> >>sehen): PANK./WEIÃ NSEE
> >>
> >>In einem anderen Datensatz wird aus KÖP -> KÃ P
> >>
> >>
>
>>------------------------------------------------------------------------
> >>
> >>Index: gnc-hbci-utils.c
>
>>===================================================================
> >>RCS file:
>
/home/cvs/cvsroot/gnucash/src/import-export/hbci/gnc-hbci-utils.c,v
> >>retrieving revision 1.23.2.15
> >>diff -u -r1.23.2.15 gnc-hbci-utils.c
> >>--- gnc-hbci-utils.c	29 Jan 2005 12:31:22 -0000
> 1.23.2.15
> >>+++ gnc-hbci-utils.c	19 Mar 2005 08:51:42 -0000
> >>@@ -25,6 +25,7 @@
> >> 
> >> #include <gnome.h>
> >> #include <errno.h>
> >>+#include <iconv.h>
> >> #include <gwenhywfar/directory.h>
> >> 
> >> #include "gnc-ui.h"
> >>@@ -475,16 +476,30 @@
> >>   }
> >> }
> >> 
> >>+struct cb_struct {
> >>+  gchar **result;
> >>+  iconv_t gnc_iconv_handler;
> >>+};
> >>+
> >> /* Needed for the gnc_hbci_descr_tognc and
> gnc_hbci_memo_tognc. */
> >> static void *gnc_list_string_cb (const char
> *string, void *user_data)
> >> {
> >>-  gchar **res = user_data;
> >>-  gchar *tmp1, *tmp2;
> >>+  struct cb_struct *u = user_data;
> >>+  gchar **res = u->result;
> >>+  gchar *tmp1, *tmp2, *outbuffer;
> >>+  char *inbuffer = (char*)string;
> >>+  size_t inbytes = strlen(string), outbytes =
> inbytes+2;
> >> 
> >>   if (!string) return NULL;
> >>-  tmp1 = g_strdup (string);
> >>-  g_strstrip (tmp1);
> >>+  tmp1 = g_strndup (string, outbytes);
> >>+  outbuffer = tmp1;
> >>+
> >>+  iconv(u->gnc_iconv_handler, &inbuffer,
> &inbytes,
> >>+	&outbuffer, &outbytes);
> >>+  if (outbytes > 0)
> >>+    *outbuffer = '\0';
> >> 
> >>+  g_strstrip (tmp1);
> >>   if (strlen (tmp1) > 0) {
> >>     if (*res != NULL) {
> >>       /* The " " is the separating string in
> between each two strings. */
> >>@@ -511,19 +526,30 @@
> >>   char *g_descr;
> >>   const GWEN_STRINGLIST *h_purpose =
> AB_Transaction_GetPurpose (h_trans);
> >>   const GWEN_STRINGLIST *h_remotename =
> AB_Transaction_GetRemoteName (h_trans);
> >>+  struct cb_struct cb_object;
> >>+
> >>+  /* FIXME: The internal target encoding is
> hard-coded so far. This
> >>+     needs to be fixed for the gnome2 version;
> the target encoding is
> >>+     then probably utf-8 as well. iconv is also
> used in
> >>+     gnc_AB_BANKING_interactors() in
> hbci-interaction.c. */
> >>+  cb_object.gnc_iconv_handler =
> iconv_open("ISO8859-15", "UTF-8");
> >>+  g_assert(cb_object.gnc_iconv_handler !=
> (iconv_t)(-1));
> >> 
> >>   /* Don't use list_string_concat_delim here
> since we need to
> >>      g_strstrip every single element of the
> string list, which is
> >>      only done in our callback
> gnc_list_string_cb. The separator is
> >>      also set there. */
> >>+  cb_object.result = &h_descr;
> >>   if (h_purpose)
> >>     GWEN_StringList_ForEach (h_purpose,
> >> 			     &gnc_list_string_cb,
> >>-			     &h_descr);
> >>+			     &cb_object);
> >>+
> >>+  cb_object.result = &othername;
> >>   if (h_remotename)
> >>     GWEN_StringList_ForEach (h_remotename,
> >> 			     &gnc_list_string_cb,
> >>-			     &othername);
> >>+			     &cb_object);
> >>   /*DEBUG("HBCI Description '%s'", h_descr);*/
> >> 
> >>   if (othername && (strlen (othername) > 0))
> >>@@ -539,6 +565,7 @@
> >>        g_strdup (h_descr) : 
> >>        g_strdup (_("Unspecified")));
> >> 
> >>+  iconv_close(cb_object.gnc_iconv_handler);
> >>   free (h_descr);
> >>   free (othername);
> >>   return g_descr;
> _______________________________________________
> gnucash-de mailing list
> gnucash-de at gnucash.org
>
https://lists.gnucash.org/mailman/listinfo/gnucash-de
>  


	
		
___________________________________________________________ 
Gesendet von Yahoo! Mail - Jetzt mit 250MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de