einträge in con_keywords für kyrillisch fehlerhaft!!!
Verfasst: Do 27. Apr 2006, 13:57
hallo zusammen,
folgendes problem:
speichert man kyrillische artikel ab, wird beim erstellen der keywords (in class.search.php) murks gemacht.
so sieht dann ein eintrag in der db aus:
eigentlich müsste dort aber folgendes stehen:
oder folgendes:
oder als letzte und von mir bevorzugte variante:
jetzt gibt es hier zwei probleme:
1. wie man am eintrag in der db sieht, werden nur vier statt fünf zeichen gespeichert. das scheint daran zu liegen, dass das B genau so aussieht wie unser (das ISO-8859-1) B, obwohl es auf der russischen tastatur ganz wo anders liegt (nähmlich beim D). das ist aber nur eine vermutung!!
2. will ich mit dem eintrag aus der datenbank in irgend einer form weiter arbeiten, kann ich das nicht, weil keine php stringfunktion das wieder umwandeln kann!!
das problem liegt in der funktion
in zeile 439 in der datei class.search.php.
diese wird in der funktion createKeywords() in zeile 296 aufgerufen.
ein lösungsansatz von mir, der allerdings schief läuft
ist es in der funktion createKeywords() ein urlencode einzusetzen um "%B2%D0%DB%DA%D8" in die db schreiben zu können. mach ich das aber vor dem funktionsaufruf removeSpecialChars(), werden mir anschließend alle "%" aus der zeichenkette gelöscht. mache ich es danach, bekomme ich die falsche zeichenkette zum kodieren!!
nämlich diese "ðûúø".
mit dem umschreiben der removeSpecialChars()-funktion bin ich aber an dieser stelle etwas überfordert
.
kann mir da jemand weiter helfen???
gruß,
funomat
folgendes problem:
speichert man kyrillische artikel ab, wird beim erstellen der keywords (in class.search.php) murks gemacht.
so sieht dann ein eintrag in der db aus:
Code: Alles auswählen
ðûúø
Code: Alles auswählen
Валки
Code: Alles auswählen
Валки
Code: Alles auswählen
%B2%D0%DB%DA%D8
1. wie man am eintrag in der db sieht, werden nur vier statt fünf zeichen gespeichert. das scheint daran zu liegen, dass das B genau so aussieht wie unser (das ISO-8859-1) B, obwohl es auf der russischen tastatur ganz wo anders liegt (nähmlich beim D). das ist aber nur eine vermutung!!
2. will ich mit dem eintrag aus der datenbank in irgend einer form weiter arbeiten, kann ich das nicht, weil keine php stringfunktion das wieder umwandeln kann!!
das problem liegt in der funktion
Code: Alles auswählen
function removeSpecialChars()
diese wird in der funktion createKeywords() in zeile 296 aufgerufen.
ein lösungsansatz von mir, der allerdings schief läuft


mit dem umschreiben der removeSpecialChars()-funktion bin ich aber an dieser stelle etwas überfordert

kann mir da jemand weiter helfen???
gruß,
funomat