Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: MartinG am 30.11.05 - 16:04:53

Titel: Umlautproblem bei Verknüpfungserzeung
Beitrag von: MartinG am 30.11.05 - 16:04:53
Ist immer etwas schwierig, wenn die Admins beginnen zu programmieren...

Folgendes Problem:

Ich habe eine Art "Formulardatenbank" in welcher Verknüpfungen auf "normale" Office-Dokumente auf dem Netzlaufwerk erzeugt werden sollen. Diese Verknüpfungen erzeuge ich durch nachfolgenden Code (welche ich bei notes.net kopiert habe). Der Code steckt in einer Maskenaktion:

Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim filename As String
   Dim TempFileName As String
   
   'Select the file.
   n$ = String$(1024, " ")
   f$ = "Word Documents|*.DOC|All Files|*.*|Acrobat Files|*.PDF|Excel Documents|*.XLS"
   ret% = NEMGetFile( 0, n$, f$, "Verknuepfung erzeugen")
   If ret% = 0 Then Exit Sub
   filename = Fulltrim(n$)
   
   'Get the working document.
   Set uidoc = workspace.CurrentDocument
   
   'Construct the html code.
   Call uidoc.FieldSetText( "Link", filename )
   s = uidoc.FieldGetText( "Link" )
   
   'Write the html code to a temp file.
   fileNum% = Freefile()
   TempFileName$ = "c:\LinkHotspotCreator.htm"
   Open TempFileName$ For Output As fileNum%
   Print #fileNum%, s
   Close fileNum%

Dieser Link wird dann in das Feld Link eingetragen und an anderer Stelle starte ich die Verknüpfung mit  @Command( [Execute]; Link )

Grundsätzlich funktioniert das ganze wunderbar, nur wenn im Dateinamen ein Umlaut enthalten ist, funktionierts nicht mehr. Dann sieht der Link wie folgt aus:

T:\Formulare\Žnderungsmeldung 1.doc

Gibts hier einen einfachen Trick/Workaround? HTML kennt ja eigentlich keine Umlaute...
Titel: Re: Umlautproblem bei Verknüpfungserzeung
Beitrag von: Driri am 30.11.05 - 16:12:48
Hi,

da gibts doch irgendwelche "Shortcuts" für die Sonderzeichen. Für nen Leerzeichen z.B. %20.

Die Liste hier hab ich mir mal irgendwo rauskopiert, ist nicht vollständig  :

Leerzeichen = %20
ö = %C3%B6
ü = %C3%A4
ä = %C3%BC

Du könntest mit einer vollständigen Liste wengistens die häufigsten Fälle erschlagen, indem Du einfach die Sonderzeichen austauschst.
Titel: Re: Umlautproblem bei Verknüpfungserzeung
Beitrag von: MartinG am 02.12.05 - 11:12:51
Hallo Ingo.

war jetzt leider etwas im Stress. Danke für den Tipp. Ich hatte gehofft, das geht vielleicht auch "globaler". Wir haben immer wieder auch Dateinamen mit anderem Zeichensatz und da knallts dann vermutlich wieder...

Gruss
Martin
Titel: Re: Umlautproblem bei Verknüpfungserzeung
Beitrag von: Glombi am 02.12.05 - 11:17:04
Es gibt eine @Formel  :)

ert eine Zeichenfolge in einem URL-sicheren Format.
Syntax
@URLEncode( Kodierformat ; Token )
Parameter
Kodierformat
Text. Der Typ der Kodierung, mit der Sie das Token übersetzen möchten. Sie können entweder ein Zeichenfolgenargument oder einen MIME-Zeichensatz angeben.
Zeichenfolgenargumente:
"Domino" -- Kodiert das Token in dem Standardzeichensatz, den der Lotus Domino 6 Web-Server verwendet. Dieses Schlüsselwort ist äquivalent zum MIME-Zeichensatz "UTF-8".
"Platform" -- Kodiert das Token in dem nativen Zeichensatz des aktuellen Betriebssystems.
MIME-Zeichensatz:
Konvertiert Nicht-ASCII-Zeichen in den angegebenen Zeichensatz und kodiert die Zeichen im %XX-Format, wobei XX für die hexadezimalen Ziffern steht, die den kodierten Wert repräsentieren. Beispiele:
"UTF-8" -- Steht für "UCS (Universal Character Set) Transformation Format 8". Eine ASCII-kompatible Mehr-Byte-Kodierung von Unicode und UCS.
"ISO-8859-1" -- Der ISO-Zeichensatz (ISO = International Standards Organization) für europäische Sprachen, 8 Bit, Ein-Byte-kodiert.
"Shift_JIS" -- Der Zeichensatz für die japanische Sprache.
Token
Text oder Textliste. URL-Zeichenfolgen, die kodiert werden sollen.
Rückgabewert
KodierteURLZeichenfolge
Text oder Textliste. Gibt die URL-Zeichenfolgen im angegebenen Format kodiert zurück.
Verwendung
Verwenden Sie @URLEncode nicht, um eine gesamte URL-Zeichenfolge zu kodieren. Beispiel: @URLEncode("Domino";"http://www.ibm.com/") würde die nicht mehr funktionsfähige URL "http%3A%2Fwww.ibm.com%2F" zurückgeben.

Beispiel:
1. Diese Formel gibt "Nach%20Datum" als kodierte URL zurück.
@URLEncode("Domino";"Nach Datum")

2.   Diese Formel gibt "Support%20%E0%20la%20client%E8le" als kodierte URL zurück.
@URLEncode("ISO-8859-1";"Support à la clientèle")


3.   Diese Formel gibt "Support%20%C3A0%20la%20client%C3%A8le" als kodierte URL zurück.
@URLEncode("UTF-8";"Support à la clientèle")

Andreas
Titel: Re: Umlautproblem bei Verknüpfungserzeung
Beitrag von: MartinG am 02.12.05 - 11:40:22
Das sieht aber gut aus...

Zitat
2.   Diese Formel gibt "Support%20%E0%20la%20client%E8le" als kodierte URL zurück.
@URLEncode("ISO-8859-1";"Support à la clientèle") 

Vielen Dank für den Tipp. Ich teste es nachher aus. Im Moment ist leider etwas Chaos hier...