--- FM2SQL/Attic/Convert.java 2004/06/14 12:12:31 1.57
+++ FM2SQL/Attic/Convert.java 2004/06/22 10:33:53 1.59
@@ -1218,6 +1218,8 @@ class Convert
Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });
Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });
Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });
+ Node useNormanToUnicodeMapper = root.find("convert/source/database/usenormantounicodemapper", new int[] { 1, 1, i, 1, 1 });
+
if (node3 == null)
throw new Error("parse error database tag missing");
if (node == null)
@@ -1228,6 +1230,12 @@ class Convert
throw new Error("parse error password tag missing");
if (delimiterNode != null)
delimiter = delimiterNode.getCharacters();
+ if(useNormanToUnicodeMapper!=null)
+ {
+ database.setUseNormanToUnicodeMapper(Boolean.valueOf(useNormanToUnicodeMapper.getCharacters()).booleanValue());
+ System.out.println("useMapper "+Boolean.valueOf(useNormanToUnicodeMapper.getCharacters().trim()).booleanValue());
+ }
+
String url = node.getCharacters();
String user = node1.getCharacters();
String password = node2.getCharacters();
@@ -1391,9 +1399,16 @@ class Convert
Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });
Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });
Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });
+ Node useNormanToUnicodeMapper = root.find("convert/source/database/usenormantounicodemapper", new int[] { 1, 1, i, 1, 1 });
if (delimiterNode != null)
delimiter = delimiterNode.getCharacters();
+ if(useNormanToUnicodeMapper!=null)
+ {
+ database.setUseNormanToUnicodeMapper(Boolean.valueOf(useNormanToUnicodeMapper.getCharacters()).booleanValue());
+ System.out.println("useMapper "+Boolean.valueOf(useNormanToUnicodeMapper.getCharacters().trim()).booleanValue());
+ }
+
if (node3 == null)
throw new Error("parse error database tag missing");
if (node == null)
@@ -1582,6 +1597,8 @@ class Convert
Vector tables;
Vector ids;
String delimiter = "//";
+ boolean useNormanToUnicodeMapper = false;
+
final static int CONVERT_MODE = 1;
final static int APPEND_MODE = 2;
final static int UPDATE_MODE = 3;
@@ -1624,6 +1641,8 @@ class Convert
modeString = "delete";
buffr.write(" " + modeString + "\n");
+ buffr.write(" " + useNormanToUnicodeMapper + "\n");
+
int index = 0;
while (index < tables.size())
{
@@ -2228,4 +2247,171 @@ class Convert
}
return buf.toString();
}
+ static public String normanToUnicodeNew(String inp) {
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < inp.length(); i++) {
+ char c = inp.charAt(i);
+ switch (c) {
+ case 1: buf.append("\u00d0"); break; // Eth
+ case 2: buf.append("\u00f0"); break; // eth
+ case 3: buf.append("\u0141"); break; // Lslash
+ case 4: buf.append("\u0142"); break; // lslash
+ case 5: buf.append("\u0160"); break; // S caron
+ case 6: buf.append("\u0161"); break; // s caron
+ case 7: buf.append("\u00dd"); break; // Y acute
+ case 8: buf.append("\u00fd"); break; // y acute
+ case 11: buf.append("\u00de"); break; // Thorn
+ case 12: buf.append("\u00fe"); break; // thorn
+ case 14: buf.append("\u017d"); break; // Z caron
+ case 15: buf.append("\u017e"); break; // z caron
+ case 17: buf.append("\u0073"); break; // asciitilde
+ case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]
+ case 19: buf.append("^"); break; // circumflex
+ case 20: buf.append("\u0303"); break; // tilde
+ case 21: buf.append("\u00bd"); break; // onehalf
+ case 22: buf.append("\u00bc"); break; // onequarter
+ case 23: buf.append("\u00b9"); break; // onesuperior
+ case 24: buf.append("\u00be"); break; // threequarters
+ case 25: buf.append("\u00b3"); break; // threesuperior
+ case 26: buf.append("\u00b2"); break; // twosuperior
+ case 27: buf.append("\u00a6"); break; // brokenbar
+ case 28: buf.append("-"); break; // minus
+ case 29: buf.append("\u00d7"); break; // multiply
+ case 39: buf.append("'"); break; // quotesingle
+ case 94: buf.append("\u0302"); break; // circumflex
+ case 96: buf.append("\u0300"); break; // grave
+ case 196: buf.append("\u00c4"); break; // A dieresis
+ case 197: buf.append("\u00c5"); break; // A ring
+ case 201: buf.append("\u00c9"); break; // E acute
+ case 209: buf.append("\u00d1"); break; // N tilde
+ case 214: buf.append("\u00d6"); break; // O dieresis
+ case 220: buf.append("\u00dc"); break; // U dieresis
+ case 225: buf.append("\u00e1"); break; // a acute
+ case 224: buf.append("\u00e0"); break; // a grave
+ case 226: buf.append("\u00e2"); break; // a circumflex
+ case 228: buf.append("\u00e4"); break; // a dieresis
+ case 227: buf.append("\u00e3"); break; // a tilde
+ case 229: buf.append("\u0101"); break; // a macron
+ case 231: buf.append("\u00e7"); break; // c cedilla
+ case 233: buf.append("\u00e9"); break; // e acute
+ case 232: buf.append("\u00e8"); break; // e grave
+ case 234: buf.append("\u00ea"); break; // e circumflex
+ case 235: buf.append("\u00eb"); break; // e dieresis
+ case 237: buf.append("\u00ed"); break; // i acute
+ case 236: buf.append("\u00ec"); break; // i grave
+ case 238: buf.append("\u00ee"); break; // i circumflex
+ case 239: buf.append("\u00ef"); break; // i dieresis
+ case 241: buf.append("\u00f1"); break; // n tilde
+ case 243: buf.append("\u00f3"); break; // o acute
+ case 242: buf.append("\u00f2"); break; // o grave
+ case 244: buf.append("\u00f4"); break; // o circumflex
+ case 246: buf.append("\u00f6"); break; // o dieresis
+ case 245: buf.append("\u00f5"); break; // o tilde
+ case 250: buf.append("\u00fa"); break; // u acute
+ case 249: buf.append("\u00f9"); break; // u grave
+ case 251: buf.append("\u00fb"); break; // u circumflex
+ case 252: buf.append("\u00fc"); break; // u dieresis
+ case 8224: buf.append("\u1e6d"); break; // t underdot
+ case 176: buf.append("\u00b0"); break; // degree
+ case 162: buf.append("\u1ebd"); break; // e tilde
+ case 163: buf.append("\u00a3"); break; // sterling
+ case 167: buf.append("\u00a7"); break; // section
+ case 182: buf.append("\u00b6"); break; // paragraph
+ case 223: buf.append("\u015b"); break; // s acute
+ case 174: buf.append("\u1e5b"); break; // r underdot
+ case 169: buf.append("\u1e45"); break; // n overdot
+ case 180: buf.append("\u0301"); break; // acute
+ case 168: buf.append("\u0308"); break; // dieresis
+ case 8800: buf.append("\u1e6d"); break; // t underdot
+ case 198: buf.append("\u00c6"); break; // AE
+ case 216: buf.append("\u014d"); break; // o macron
+ case 8734: buf.append("\u0129"); break; // i tilde
+ case 177: buf.append("\u00b1"); break; // plusminus
+ case 165: buf.append("\u012b"); break; // i macron
+ case 181: buf.append("\u1e43"); break; // m underdot
+ case 8706: buf.append("\u1e0d"); break; // d underdot
+ case 8721: buf.append("\u1e63"); break; // s underdot
+ case 960: buf.append("\u017a"); break; // z acute
+ case 8747: buf.append("\u1e45"); break; // n overdot
+ case 937: buf.append("\u0169"); break; // u tilde
+ case 230: buf.append("\u00e6"); break; // ae
+ case 248: buf.append("\u00f8"); break; // oslash
+ case 191: buf.append("\u0304\u0306"); break; // macron breve
+ case 172: buf.append("\u1e37"); break; //
+ case 8730: buf.append("j\u0305"); break; // j macron [does a single char exist?]
+ case 402: buf.append("\u0103"); break; // a breve
+ case 8776: buf.append("\u016d"); break; // u breve
+ case 187: buf.append("\u1e42"); break; // M underdot
+ case 8230: buf.append("\u2026"); break; // ellipsis
+ case 192: buf.append("\u00c0"); break; // A grave
+ case 195: buf.append("\u00c3"); break; // A tilde
+ case 213: buf.append("\u00d5"); break; // O tilde
+ case 338: buf.append("m\u0306"); break; // m breve
+ case 339: buf.append("\u0153"); break; // oe
+ case 8211: buf.append("\u2013"); break; // endash
+ case 8212: buf.append("\u2014"); break; // emdash
+ case 8220: buf.append("\u201c"); break; // quotedblleft
+ case 8221: buf.append("\u201d"); break; // quotedblright
+ case 8216: buf.append("\u2018"); break; // quoteleft
+ case 8217: buf.append("\u2019"); break; // quoteright
+ case 247: buf.append("\u1e37"); break; // l underring [actually underdot]
+ case 9674: buf.append("\u1e41"); break; // m overdot
+ case 255: buf.append("n\u0306"); break; // n breve
+ case 376: buf.append("\u00d7"); break; // multiply
+ case 8364: buf.append("\u1e5b"); break; // r underring [actually underdot]
+ case 8249: buf.append("\u1e44"); break; // N overdot
+ case 8250: buf.append("\u1e62"); break; // S underdot
+ case 64257: buf.append("\u1e24"); break; // H underdot
+ case 64258: buf.append("\u1e0c"); break; // D underdot
+ case 8225: buf.append("\u2021"); break; // daggerdbl
+ case 8218: buf.append("\u1e36"); break; // L underdot
+ case 8222: buf.append("\u0113"); break; // e macron
+ case 194: buf.append("\u1e5f"); break; // r underbar
+ case 202: buf.append("r\u0324"); break; // r underdieresis
+ case 193: buf.append("\u012a"); break; // I macron
+ case 203: buf.append("\u016b"); break; // u macron
+ case 200: buf.append("\u1e6c"); break; // T underdot
+ case 205: buf.append("\u1e64"); break; // S acute
+ case 206: buf.append("\u2020"); break; // dagger
+ case 207: buf.append("\u0115"); break; // e breve
+ case 204: buf.append("\u014f"); break; // o breve
+ case 211: buf.append("\u0100"); break; // A macron
+ case 212: buf.append("\u1e46"); break; // N underdot
+ case 210: buf.append("\u1e3b"); break; // l underbar
+ case 218: buf.append("\u016a"); break; // U macron
+ case 219: buf.append("\u0179"); break; // Z acute
+ case 217: buf.append("\u1e5a"); break; // R underdot
+ case 305: buf.append("\u0131"); break; // dotlessi
+ case 710: buf.append("\u1e47"); break; // n underdot
+ case 732: buf.append("\u1e49"); break; // n underbar
+ case 175: buf.append("\u0304"); break; // macron
+ case 728: buf.append("\u0306"); break; // breve
+ case 729: buf.append("\u1e25"); break; // h underdot
+ case 730: buf.append("\u012d"); break; // i breve
+ case 184: buf.append("\u0327"); break; // cedilla
+ case 733: buf.append("\u030b"); break; // hungarumlaut
+ case 731: buf.append("\u0328"); break; // ogonek
+ case 711: buf.append("\u030c"); break; // caron
+ case 199: buf.append("\u012b\u0303"); break; // imacron tilde
+ case 8226: buf.append("\u1e5d"); break; // runderdot macron
+ case 8482: buf.append("\u016b\0306"); break; // umacron breve
+ case 8804: buf.append("\u0101\u0301"); break; // amacron acute
+ case 8805: buf.append("\u016b\u0301"); break; // umacron acute
+ case 8719: buf.append("\u0113\u0301"); break; // emacron acute
+ case 170: buf.append("\u0113\u0300"); break; // emacron breve
+ case 186: buf.append("\u014d\u0300"); break; // omacron breve
+ case 161: buf.append("\u0101\u0306"); break; // amacron breve
+ case 8710: buf.append("\u0101\u0303"); break; // amacron tilde
+ case 171: buf.append("\u012b\u0301"); break; // imacron acute
+ case 8260: buf.append("\u1e00"); break; // runderdotmacron acute
+ case 183: buf.append("\u1e5b\u0301"); break; // runderdot acute
+ case 8240: buf.append("\u012b\u0306"); break; // imacron breve
+ case 63743: buf.append("\u016b\u0303"); break; // umacron tilde
+ default: buf.append(c); break;
+ }
+ }
+ return buf.toString();
+ }
+
+
}
\ No newline at end of file