Hallo zusammen,
ich suche nach einer Lösung für folgendes Problem.
Ich versuche aus einer Fremddatenbank Daten zuzuordnen. Ich weiss nicht ob es FoxPro oder DBase ist. Lässte sich aber mit FoxPro to CSV korrekt umwandeln.
Ich habe dort eine Tabelle mit Personen, diese haben einen 6-stelligen-Char-Index.
In einer anderen Tabelle wird nicht dieser Index zugeordnet, sondern über eine 18-stellige-Ganzzahl (066055238160207106).
Ich bin jetzt mal davon ausgegangen, dass 18 durch 6 = 3 ist und dann Zahlen zwischen 000 und 255 vorkommen (größere Zahlen habe ich in der Tabelle nicht gesehen)
in Dreierblocks: 066 055 238 160 207 106
Wenn ich den Index als String auslese und mir die Daten ausgeben lasse:
String original "17î ±ÿ";
for(int i = 0; i<6;i++){
System.out.println(original.codePointAt(i));}
erhalte ich folgende Werte:
49, 55, 238, 160, 177, 255
Interessant ist, dass die Werte 2-4 korrekt sind, die anderen nicht. Ich finde hier auch keinen Zusammenhang.
Wenn ich den String als Byte[] auslese und mir die Werte ausgeben lasse erhalte ich mit allen Standard-Charset-Kodierungen bis auf die 2. Stelle andere Werte. Die restlichen Werte variieren, sind aber nie korrekt.
Hat jemand eine Idee, welche Kodierung von DBase, bzw. FoxPro verwendet wird?
Danke für die Denkanstöße
Frank
ich suche nach einer Lösung für folgendes Problem.
Ich versuche aus einer Fremddatenbank Daten zuzuordnen. Ich weiss nicht ob es FoxPro oder DBase ist. Lässte sich aber mit FoxPro to CSV korrekt umwandeln.
Ich habe dort eine Tabelle mit Personen, diese haben einen 6-stelligen-Char-Index.
In einer anderen Tabelle wird nicht dieser Index zugeordnet, sondern über eine 18-stellige-Ganzzahl (066055238160207106).
Ich bin jetzt mal davon ausgegangen, dass 18 durch 6 = 3 ist und dann Zahlen zwischen 000 und 255 vorkommen (größere Zahlen habe ich in der Tabelle nicht gesehen)
in Dreierblocks: 066 055 238 160 207 106
Wenn ich den Index als String auslese und mir die Daten ausgeben lasse:
String original "17î ±ÿ";
for(int i = 0; i<6;i++){
System.out.println(original.codePointAt(i));}
erhalte ich folgende Werte:
49, 55, 238, 160, 177, 255
Interessant ist, dass die Werte 2-4 korrekt sind, die anderen nicht. Ich finde hier auch keinen Zusammenhang.
Wenn ich den String als Byte[] auslese und mir die Werte ausgeben lasse erhalte ich mit allen Standard-Charset-Kodierungen bis auf die 2. Stelle andere Werte. Die restlichen Werte variieren, sind aber nie korrekt.
Hat jemand eine Idee, welche Kodierung von DBase, bzw. FoxPro verwendet wird?
Danke für die Denkanstöße
Frank