Announcement

Collapse
No announcement yet.

MS-Access mit JAva auslesen : Umlaute ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MS-Access mit JAva auslesen : Umlaute ?

    hi all,

    also ich hab schon einiges probiert, bevor ich hier poste :

    Wenn ich unter Windows7 mittels java , jdbcdbc:... sätze auslese, stimmen die umlaute nicht,
    es kommt meist '?'

    versucht mit properties :
    Code:
            //- fuer ODBC -MS-Access
                Properties p = new Properties();
                p.put("uid", kw);
                p.put("pwd", pw);
                p.put("charSet", "UTF8");
            
            url = url.toUpperCase();
            if(url.contains("ODBC"))
            {
                url = "JDBC:ODBC:";
                url += "Driver={Microsoft Access Driver (*.mdb)}; DBQ=";
                url += dbname+".mdb;";
                url += "uid=admin;pwd=;";
            }    
            else 
            {    
                url += dbname;
                //url += ";SET NAMES 'utf8';";
                //url += "?useUnicode=true&characterEncoding=utf8";
            }
            System.out.println("tff get_conn_by_owndb_infos URL : "+url+" KW : "+kw+" PW : "+pw);
            
            int step = 0;
            try
            {
                Class.forName(driver); 
     
                System.out.println("tff get_conn_by_owndb_infos Treiber akzeptiert !");
     
                step++;
     
                if(url.contains("ODBC"))
                    cn = DriverManager.getConnection(url,p);
                else    
                    cn = DriverManager.getConnection(url,kw,pw);
                System.out.println("tff get_conn_by_owndb_infos URL+Login akzeptiert zu "+url);
    keine Abhilfe; wie ich im web las, geht es heutzutage nicht mehr mit "charSet", "UTF8"

    und jetzt ?

    habe mit direkt-treibern versucht :
    easysoft : mag 'meine' urls garnicht, vendor äußert sich nicht
    jstels : mixt nen merkwürdigen db-name dazu, bisher keine rückmeldung von vendor

    bleibt wohl nur, die strings durchzusuchen auf einzelne chars..ord..mittels hashmap austauschen..
    das geht aber nicht, da rs.getString(i) nur noch '?' (Ascii 63) liefert, egal ob ÄÖÜ... !

    was kann man nur machen ?

  • #2
    Java und ODBC ist schon ein Widerspruch.

    Man kann an deinem Code überhaupt nicht sehen, wie du Daten ausliest nd wie der Treiber bestimmt wird

    Würde vermuten schon Access gibt kein UTF8 raus
    Christian

    Comment


    • #3
      UTF8 verwendet als nativen String-Datentyp UTF-16!

      Comment


      • #4
        Benutze byte abfrage:
        byte[] rawBytes = rs.getBytes(COLUMNAME);
        String columnWert= new String (rawBytes,"Windows-1252");

        sehe: http://www.absoluteastronomy.com/topics/JDBC_driver

        Comment


        • #5
          Originally posted by Bernhard Geyer View Post
          UTF8 verwendet als nativen String-Datentyp UTF-16!
          Muss natürlich heißen: Access verwendet (wie Java auch) als nativen String-Datentyp UTF-16.
          Eine UTF8-Wandlung ist kontraproduktiv.

          Comment

          Working...
          X