Ignore:
Timestamp:
2010-01-04T17:40:03+13:00 (14 years ago)
Author:
davidb
Message:

Code was working for Ascii characters, but not for Unicode values > 128. More careful prescription of utf-8 used in code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/common-src/src/jdbmedit/JdbmAPI.java

    r21402 r21403  
    2727import java.io.InputStreamReader;
    2828import java.io.IOException;
     29import java.io.UnsupportedEncodingException;
     30import java.io.OutputStreamWriter;
     31import java.io.PrintWriter;
    2932
    3033import java.util.Properties;
     
    4548    HTree          hashtable_;
    4649
     50    static private PrintWriter utf8out = null;
     51
     52    static
     53    {
     54        try {
     55            OutputStreamWriter osw = new OutputStreamWriter(System.out, "UTF-8");
     56            utf8out = new PrintWriter(osw, true);
     57        }
     58        catch (UnsupportedEncodingException e) {
     59            System.out.println(e);
     60        }
     61    }
     62
    4763    public JdbmAPI(String db_filename,boolean must_exist)
    4864    throws IOException
    4965    {
     66    if (db_filename.endsWith(".jdb")) {
     67        // remove file extension as JDBM does not expect it
     68        db_filename = db_filename.substring(0,db_filename.length()-4);
     69    }
     70
    5071        // create or open a record manager
    5172        Properties props = new Properties();
     
    197218        JdbmAPI jdbm_api = new JdbmAPI(dbname);
    198219
    199         InputStreamReader isr=new InputStreamReader(System.in);
     220        InputStreamReader isr=new InputStreamReader(System.in,"UTF-8");
    200221        BufferedReader brin = new BufferedReader(isr);
    201222
     
    208229
    209230            int keys_len = keys.size();
    210             System.out.println(keys_len);
     231            utf8out.println(keys_len);
    211232
    212233            for (int i=0; i<keys_len; i++) {
    213234            String key = (String) keys.get(i);
    214             System.out.println(key);
     235            utf8out.println(key);
    215236            }
    216237        }
     
    221242            if (cmd.equals("Get")) {
    222243                String val = jdbm_api.get(key);
    223                 System.out.println(val.length());
    224                 System.out.println(val);
     244                utf8out.println(val.length());
     245                utf8out.println(val);
    225246            }
    226247            else {
Note: See TracChangeset for help on using the changeset viewer.