Dear Jim, Deep thanks for your debugging. But I do see the 7th alias should match, am I right? That is: alias.put("ISO8859_1", "8859_1"); So I still can't understand why this error comes out.
Best regards, King Tin Quoting Jim White <[EMAIL PROTECTED]>: > Lam King Tin wrote: > > > Dear Jim, > > > > Thank you very much for your reply. > > > > I have tried to replace the method with the fixed version from Connector/J > 5.0 > > as follows. The casting exception has disappeared. However, now I always > > encounter below. This encoding should be the most common, right? But why > this > > happens. Thanks. > > > > SQL Exception: Unsupported character encoding 'ISO8859_1'. > > ... > > Well, more debugging shows that Connection has tried all of the > configurable character encodings it knows on tests that look like this: > > mysql-connector-java-3.0.17-ga/com/mysql/jdbc/Connection.java > > private void configureCharsetProperties(Properties info) throws > SQLException { > ... > try { > String testString = "abc"; > testString.getBytes(this.encoding); > } catch (UnsupportedEncodingException encodingEx) { > throw new SQLException("Unsupported character " > + "encoding '" + this.encoding + "'.", > SQLError.SQL_STATE_INVALID_CONNECTION_ATTRIBUTE); > } > > And the last try must be from this: > > private boolean configureClientCharacterSet() throws SQLException { > String realJavaEncoding = getEncoding(); > boolean characterSetAlreadyConfigured = false; > > ... > > if (this.encoding == null) { > // punt? > this.encoding = "ISO8859_1"; > } > > So I look into Kaffe 1.0.6 to find out how character encodings are > configured (fortunately or unfortunately depending on how you look at > it, I've done a fair bit of this sort of thing before...) and we see this: > > kaffe-1.0.6/libraries/javalib/kaffe/io/CharToByteConverter.java > > private static CharToByteConverter getConverterInternal(String enc) > { > ... > String realenc = encodingRoot + ".CharToByte" + > ConverterAlias.alias(enc); > > kaffe-1.0.6/libraries/javalib/kaffe/io/ConverterAlias.java > > public class ConverterAlias { > private static final Hashtable alias = new Hashtable(); > > // All aliases should be upper case > static { > alias.put("DEFAULT", "Default"); > alias.put("ISO-8859-1", "8859_1"); > alias.put("ISO_8859_1", "8859_1"); > alias.put("ISO 8859-1", "8859_1"); > alias.put("ISO 8859_1", "8859_1"); > alias.put("ISO_8859-1", "8859_1"); > alias.put("ISO8859_1", "8859_1"); > alias.put("ISO-IR-100", "8859_1"); > alias.put("LATIN1", "8859_1"); > alias.put("L1", "8859_1"); > alias.put("IBM819", "8859_1"); > alias.put("CP819", "8859_1"); > alias.put("CSISOLATIN1", "8859_1"); > alias.put("ISO-8859-2", "8859_2"); > alias.put("ISO-8859-3", "8859_3"); > alias.put("ISO-8859-4", "8859_4"); > alias.put("ISO-8859-5", "8859_5"); > alias.put("ISO-8859-6", "8859_6"); > alias.put("ISO-8859-7", "8859_7"); > alias.put("ISO-8859-8", "8859_8"); > alias.put("ISO-8859-9", "8859_9"); > alias.put("ISO-2022-JP", "EUC_JP"); > alias.put("EBCDIC", "CP1046"); > alias.put("UTF-8", "UTF8"); > alias.put("KOI8-R", "KOI8_R"); > /* add more here */ > } > > So we see that "ISO8859_1" is not an alias kno. Try changing that line > in Connector.java to use one like "ISO-8859-1". That should get you > past the initial failure, but whether you'll have a working > configuration may a bit doubtful. > > Jim > > ------------------------------------------------- This mail sent through IMP: http://horde.org/imp/ _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe