Domino 9 und frühere Versionen > ND8: Administration & Userprobleme
Probleme mit Sonderzeichen in Dateianhängen
(1/1)
Legolas:
Hallo Forum,
ich habe das Problem, dass Dateianhänge mit Sonderzeichen (ä,ü,ö usw.) per backend Agent vom Dominoserver die auf die Festplatte abgelegt werden sollen.
Diese Dateienanhänge mit Sonderzeichen werden aber nicht korrekt im Filesystem abgelegt.
Die Sonderzeichen werden falsch dargestellt.
Ich detache die Dateianhänge von E-Mails in ein konfiguriertes Fileverzeichnis.
Siehe Code:
--- Code: --- .....
' Funktion löst alle Attachments direkt im Body Feld mit Originalnamen.
Set rtItem = mDoc.Getfirstitem("Body")
If Not rtItem Is Nothing Then
lauf = -1
If ( rtitem.Type = RICHTEXT ) Then
' Wenn kein Attachment im Bodyfeld liegt, wird eine Type missmache geworfen! Bug ist der IBM gemeldet.
On Error GoTo noAttachmentinBody
ForAll o In rtItem.EmbeddedObjects
On Error GoTo errhandler
If ( o.Type = EMBED_ATTACHMENT ) Then
Set objAttachment = Nothing
Set objAttachment = rtItem.Getembeddedobject(o.name)
lauf = lauf + 1
ReDim Preserve FileArray1(1, lauf)
FileArray1(0, lauf) = o.Name
'-------------------------------------------------------------
filename = objAttachment.Source
OrgFilename = objAttachment.Source
' Da mehrere Attachments mit gleichem Namen in Bodyfeldern möglich sind --->
' Prüfen ob der Name schon im Array vorhanden ist. Wenn ja, so lange weiter suchen,
' bis keine fortlaufende Nummer mehr vorhanden ist. Dieser Wert wird dann übergeben.
Dim FileExistInArray
FileExistInArray = True
fileIndex = 0
Do While FileExistInArray = True
fileIndex = fileIndex + 1
' Im Array suchen
foundFlag = False
For a = 0 To lauf
If FileArray1(1, a) = filename Then
' File schon vorhanden
foundFlag = True
Exit For
End If
Next
If foundFlag = True Then
' Laufende Nummer im Dateinamen hochzählen
filename = C_LeftBack(OrgFilename, ".") +" (" + Trim(Str(fileIndex)) + ")." + C_RightBack(OrgFilename, ".")
Else
' Ende Do --> File noch nicht vorhanden
FileExistInArray = False
End If
Loop
'-------------------------------------------------------------
FileArray1(1, lauf) = filename
Call objAttachment.ExtractFile(C_PathSeparator(filepath2 &"\" & filename))
Call C_ALog("", 3, "files: " + o.Name + " (" + filename + ")", "")
' In die Liste der Attachments aufnehmen (Mit Namen der Datei wie diese im Filesystem liegt.)
FileArray = C_AppendArray(FileArray, C_PathSeparator(filepath2 &"\" & filename), "string")
End if
End ForAll
End if
End If
noAttachmentinBody:
....
--- Ende Code ---
Da das Ganze bei Test-Systemumgebungen wie Windows Server 2008 (64 Bit), Windows XP (32 Bit) und Open Suse 11.4 funktioniert, tippe ich, dass die Ursache irgendeine Systemeinstellung ist!
Kann hier jemand weiter helfen?
Domino Server:
Version 8.5.3 FP2HF25 (32 Bit)
Keine Sprachpakete installiert
Betriebssystem:
Suse Linux Enterprise Server 11 SP1 (64 Bit)
Linux 2.6.32.12-0.7 –default
Default Language: Englisch
Grüße
Bernd
Driri:
Evtl. ist da die simpelste Lösung, die problematischen Sonderzeichen im Dateinamen einfach zu ersetzen. Das kann man via Replace ja recht einfach lösen.
Legolas:
Hallo Diri,
das wäre sicher ein Workarond!
Aber es handelt sich hier um Kundendaten die nicht einfach geändert werden dürfen.
Es kann ja schließlich auch sein, dass z.B. japanische oder schwedische Schriftzeichen im Dateinamen vorkommen.
Spätestens dann ist nichts mehr möglich mit Ersetzten usw.
Grüße
Bernd
m3:
Nachdem das Ganze unter Linux passiert ...
Hast Du schon mal die "locale" gecheckt? Vergleich mal den Output von "locale" auf der Linux box unter dem Domino User auf Test und Produktionssystem.
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln