WAA und Zeichensatz
Moderator: Moderatoren
WAA und Zeichensatz
Ich hatte das Problem, dass die Datenbankinhalte (Umlaute) im Web bei jedem Seitenaufruf unterschiedlich angezeigt wurden. Mal waren die Umlaute OK, mal fehlten sie völlig, mal wurde ein anderes Zeichen angezeigt (bei mehrmaligem Neuaufbau der Seite). Ich filtere seitdem die Umlaute heraus und setze das richtige HTML-Zeichen dafür ein. Nur beim EURO-Symbol klappt es nicht. Ich filtere auf chr(213) und setze dann "€" dafür ein. Das klappt manchmal. Meistens wird aber ein normales "i" angezeigt (chr(213) wurde nicht erkannt). Es gibt Unterschiede, auf welchem Rechner WAA läuft. Es müsste damit zu tun haben, wie der WAA die Datenbank ausliest.
Hat jemand eine Idee ?
Hat jemand eine Idee ?
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
WAA und Euro-Zeichen
Hallo,
Danke für die schnelle Reaktion. Nochmals das Problem: Der Datenbank-String wird nach chr(213) durchsucht und bei Vorhandensein mit "€" ersetzt. Obwohl das Euro-Zeichen im String enthalten ist, wird es manchmal nicht erkannt. Im HTML-Text erscheint dann ein "i". Das merkwürdige ist, mal geht es, mal nicht !
Hans
Danke für die schnelle Reaktion. Nochmals das Problem: Der Datenbank-String wird nach chr(213) durchsucht und bei Vorhandensein mit "€" ersetzt. Obwohl das Euro-Zeichen im String enthalten ist, wird es manchmal nicht erkannt. Im HTML-Text erscheint dann ein "i". Das merkwürdige ist, mal geht es, mal nicht !
Hans
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Moin Hans,
Ich denke mal, dass Dein String mal in ANSI und mal in OEM vorliegt...
Viele Grüße,
Martin
Ich denke mal, dass Dein String mal in ANSI und mal in OEM vorliegt...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Moin Martin,
wie wäre das möglich. Ich öffne die Datenbank, lese den String, suche das EURO-Zeichen, ersetze es und erzeuge den HTML-Text und schließe die Datenbank. Beim nächsten Aufruf wird das Euro-Zeichen nicht mehr erkannt, und zwar in der gesamten Datenbank. Wie kann ich den Zeichensatz fest einstellen ?
Danke, Hans
wie wäre das möglich. Ich öffne die Datenbank, lese den String, suche das EURO-Zeichen, ersetze es und erzeuge den HTML-Text und schließe die Datenbank. Beim nächsten Aufruf wird das Euro-Zeichen nicht mehr erkannt, und zwar in der gesamten Datenbank. Wie kann ich den Zeichensatz fest einstellen ?
Danke, Hans
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hans,
dazu müsste man mal sehen, wie Du den Text aus der Datenbank holst, in einer Variablen ablegst, diese entsprechend umwandelst und das ganze ausgiebst.
Und vor allem: Wie werden die Informationen in der Datenbank gespeichert? Mit oder ohne Umwandlung (ConvToOEMCP bzw. ConvToAnsiCP)?
Viele Grüße,
Martin
dazu müsste man mal sehen, wie Du den Text aus der Datenbank holst, in einer Variablen ablegst, diese entsprechend umwandelst und das ganze ausgiebst.
Und vor allem: Wie werden die Informationen in der Datenbank gespeichert? Mit oder ohne Umwandlung (ConvToOEMCP bzw. ConvToAnsiCP)?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Hallo Martin,
die Daten werden ohne Umwandlung in einer Xbase-Anwendung gespeichert. Dort tritt diese Problem nicht auf.
************************************************
//Einlesen direkt aus der Datenbank
adata := wcharl({artgr, grbez, var2char(agrzu), var2char(agrfest),var2char(prf)}) //Variablen-Namen
*************************************************
function wcharl(achar) //achar Feld mit Ausdr
die Daten werden ohne Umwandlung in einer Xbase-Anwendung gespeichert. Dort tritt diese Problem nicht auf.
************************************************
//Einlesen direkt aus der Datenbank
adata := wcharl({artgr, grbez, var2char(agrzu), var2char(agrfest),var2char(prf)}) //Variablen-Namen
*************************************************
function wcharl(achar) //achar Feld mit Ausdr
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hans,
ich glaube, genau da liegt Dein Problem!
Du übergibst die Felder in einem Array direkt und in der Funktion änderst Du ein Zeichen in einem Arrayelement.
Array werden an Funktionen ja nur als Referenz übergeben - dadurch werden die Änderungen in der Funktion auch an der eigentlichen Stelle durchgeführt - in diesem Fall könntest Du Dir also das return achar am Ende sparen!
Versuche mal, das ganze noch weiter zu vereinfachen:
Viele Grüße,
Martin
ich glaube, genau da liegt Dein Problem!
Du übergibst die Felder in einem Array direkt und in der Funktion änderst Du ein Zeichen in einem Arrayelement.
Array werden an Funktionen ja nur als Referenz übergeben - dadurch werden die Änderungen in der Funktion auch an der eigentlichen Stelle durchgeführt - in diesem Fall könntest Du Dir also das return achar am Ende sparen!
Versuche mal, das ganze noch weiter zu vereinfachen:
Code: Alles auswählen
adata := {}
aadd( adata, strtran( artgr, Chr(213), "€" ) )
aadd( adata, strtran( grbez, Chr(213), "€" ) )
aadd( adata, strtran( var2char(agrzu), Chr(213), "€" ) )
aadd( adata, strtran( var2char(agrfest), Chr(213), "€" ) )
aadd( adata, strtran( var2char(prf), Chr(213), "€" ) )
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo, ich habe es !!
Grundeinstellung für jede Seite:
#include "Nls.ch"
SetLocale( NLS_ICURRENCYEURO, "1" )
SetLocale( NLS_SCURRENCY, Chr(213) )
SET CHARSET TO ansi
und falls mal ein " dabei ist :
cchar:=strtran( cchar,chr(34), " & #34;")
Im HTML-Text stehen dann die Umlaute unverändert drin, zB.
<td><font face=helv size=-2><b>Zubehör bis 2,-€ EK</b></td>
Hans
Grundeinstellung für jede Seite:
#include "Nls.ch"
SetLocale( NLS_ICURRENCYEURO, "1" )
SetLocale( NLS_SCURRENCY, Chr(213) )
SET CHARSET TO ansi
und falls mal ein " dabei ist :
cchar:=strtran( cchar,chr(34), " & #34;")
Im HTML-Text stehen dann die Umlaute unverändert drin, zB.
<td><font face=helv size=-2><b>Zubehör bis 2,-€ EK</b></td>
Hans
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hans,
das geht so zwar mit den Umlauten, aber nur auf Deutschen PCs - in ausländischen Umgebungen oder unter UNIX/Linux-Browsern (oder ähnlichem) wirst Du (bzw. der, der sich die Seite anschauen will) damit Probleme haben.
Vieel Grüße,
Martin
das geht so zwar mit den Umlauten, aber nur auf Deutschen PCs - in ausländischen Umgebungen oder unter UNIX/Linux-Browsern (oder ähnlichem) wirst Du (bzw. der, der sich die Seite anschauen will) damit Probleme haben.
Vieel Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.