[mySQL/PHP/HTML] Probleem met speciale karakters

Pagina: 1
Acties:

  • Yo-L
  • Registratie: December 2000
  • Niet online
Om maar gelijk met de deur in huis te vallen:

ik had een database met een boel entries met een row waarin allemaal teksten stonden, in deze teksten stonden ook gewoon umlauts en andere rare tekens. Nu moest ik deze teksten allemaal veranderen en heb dat dan ook gedaan via:
code:
1
UPDATE <tabel> SET message="<message met umlauts>";

dit ging allemaal heel leuk en aardig, maar het probleem is nu dat ik alleen maar vierkantjes en andere foute tekens krijg voor die umlauts e.d.

Het vreemde hierbij is dat als ik via telnet naar de mySQL server ga, de umlauts wel correct weer worden gegeven, maar in het .php3 bestand (en ook de source!) niet dus...

Ik heb al verscheidene charactersets geprobeerd, maar daar lijkt het niet aan te liggen (zie ook aan het feit dat het in de source ook al verkeerd gaat)..

heeft iemand een idee wat er precies fout gaat en wat ik daaraan kan doen?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

waarmee vervang je het dan voordat het de database ingeschoven wordt?

www.jurgroessen.nl


  • Yo-L
  • Registratie: December 2000
  • Niet online
Op maandag 08 juli 2002 12:22 schreef Hangloozz het volgende:
waarmee vervang je het dan voordat het de database ingeschoven wordt?
Bedoel je waaruit ik de tekst had gehaald?
Ik heb de betreffende tekst in een mailtje staan, maar die heb ik eerst in notepad gekopieerd en van daaruit via die UPDATE commando (in telnet) in de database gezet...

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 22:57

RM-rf

1 2 3 4 5 7 6 8 9

ik denk dat een move naar P&W op zijn plaats is.

heb je overigens deze link gelezen?
http://www.mysql.com/doc/C/h/Character_sets.html

met deze opmerking:
One should use mysql_real_escape_string() when escaping strings for a SQL query. mysql_real_escape_string() is identical to the old mysql_escape_string() function, except that it takes the MYSQL connection handle as the first parameter.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Kris
  • Registratie: Maart 2002
  • Laatst online: 02-09 15:38
Op maandag 08 juli 2002 12:19 schreef Yo-L het volgende:
code:
1
UPDATE <tabel> SET message="<message met umlauts>";
Geloof dat je dit bedoelt:
Voordat je alles wegschrijft i de database moet je de $message aanpassen. Dat doe je door de volgende actie
code:
1
$message = addslashes($message);

Maar snap het niet helemaal precies wat je bedoelt. Als dit niet werkt moet je het ff iets duidelijker uitleggen.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:33

Pelle

🚴‍♂️

Voor de buren :)

[forum=13] -> [forum=14]

  • Yo-L
  • Registratie: December 2000
  • Niet online
Hm, ik heb naar die pagina van RM -rf gekeken, maar ik kan niet zo 123 ontdekken wat het gevolg hiervan is voor mijn probleem, ik zal ff stapsgewijs uit proberen te leggen wat ik heb gedaan en wat er fout gaat:

1) Ik had een mysqldatabase waarin teksten stonden met umlauts, deze kwamen correct in de show.php3 pagina te staan

2) Ik kreeg een nieuwe tekst aangeleverd, welke ik in de database heb gestopt via het UPDATE commando. Wanneer ik in telnet "SELECT * FROM <table>" doe, krijg ik alle umlauts correct te zien

3) Nu keek ik weer naar mijn show.php3 en tot mijn stomme verbazing bleken alle umlauts nu vierkantjes te zijn of andere foute letters

4) Ik heb een aantal dingen geprobeerd, htmlspecialchars/mysql_real_escape_string/addslashes, maar deze hebben geen gevolg voor de output in show.php3. Ook heb ik verschillende charactersets gebruikt, ook geen positief gevolg.

Ik snap er persoonlijk niets meer van wat er fout gaat en waarom, en zodanig wordt een oplossing vinden ook lastig. Iets veranderen aan de mySQL server lijkt mij overbodig, aangezien hij goed gefunctioneerd heeft voordat ik de nieuwe tekst invoegde en in telnet ook alles goed laat zien.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

die umlauts worden trouwens door de functie htmlentities vervangen door de html-equivalent, niet door htmlspecialchars.

Als je je php de characterset goed laat outputten zou het sowieso goed moeten gaan. (met de header gedoe), het zou goed kunnen dat je provider de default veranderd heeft...
Pagina: 1