Kodierung ändern

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

oliver1804
**
Beiträge: 39
Registriert: Fr, 27.11.2009 15:07

Kodierung ändern

Beitrag von oliver1804 »

Hallo,

hab aus einer dbf-Datenquelle wahrscheinlich die übliche "Latin 1"-Kodierung gejolt und würd das nun gerne per OOo und Makro in utf-8 umkodieren. Hab schon nach Funktionen geschaut und auch a wegn gegoogelt konnte bisher aber nix finden?

Für dies Zeichen beispielsweise ´ krieg ich bei utf-8 nur Murx angezeigt

Kleiner Tipp von Euch?

Gruß
Oliver
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Kodierung ändern

Beitrag von komma4 »

Du suchst was um mittels Basic die Zeichen zu ändern?

REPLACEDESCRIPTOR

War es das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
oliver1804
**
Beiträge: 39
Registriert: Fr, 27.11.2009 15:07

Re: Kodierung ändern

Beitrag von oliver1804 »

Naja,

eher eine Funktion, die die Features von

http://www.gnu.org/software/libiconv/do ... onv.1.html

hat - aber ich werd's mal versuchen

Danke
Oliver


EDIT:
iconv hat den Vorteil, daß ich mir keinen Kopf drüber machen muß, wie ich é (ASCII 130) in utf-8 oder was auch immer übersetzen muß
oliver1804
**
Beiträge: 39
Registriert: Fr, 27.11.2009 15:07

Re: Kodierung ändern

Beitrag von oliver1804 »

@komma4: ich hab nun mal versucht, unten stehendes Sub auf ein ResultSet anzuwenden, aber "er" meckert rum, daß die Methode "createReplaceDescriptor" unbekannt ist - o.k., ist klar, daß diese Methode nicht auf das Objekt angewendet werden kann. Aber ich würd mich über 'nen Tipp freuen, wie ich weitermachen könnte.

Code: Alles auswählen

Sub ascii_to_utf8(oNewEnc as Object)

Dim I As Long

Dim Replace As Object

Dim ascii(0) As String
Dim utf8(0) As String
 
ascii() = Array("0082")
utf8()  = Array("00E9")

Replace = oNewEnc.createReplaceDescriptor
Replace.SearchRegularExpression = True
 
For I = 0 To 0
  Replace.SearchString  = "\x" & ascii(I)
  Replace.ReplaceString = "\x" & utf8(I)
  Doc.replaceAll(Replace)
Next I

End Sub
Danke
Oliver
Antworten