[PHP / MySQL] Speciale tekens opslaan...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voor een webprogrammaatje, wil ik teksten van bezoekers kunnen opslaan. Dit werkt op zich allemaal wel lekker, alleen heb ik wat vraagtekens bij het gebruik van speciale tekens.

Bijvoorbeeld als via de site "ï" wordt ingevoerd, wordt dit in de database opgeslagen als "ï". Ik gebruik wel enkele functies om de input te filteren: strip_tags(), htmlentities() en addslashes(), hebben die hier iets mee te maken?

Aan de andere kant werkt het ook niet helemaal want als ik de "ï" hard in de database zet, krijg ik als output op mijn scherm: "Op>". Ook een beetje vreemd... ok niet vreemd, het zal wel te verklaren zijn ;) Maar ik kom er niet echt achter wat ik in beide gevallen fout doe.

Iemand die mij hier meer over kan vertellen?

Alvast heel erg bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

Van welk datatype is het veld waar jij de userdata in opslaat? Je zou daar eens nvarchar of ntext van kunnen maken (hangt er vanaf hoeveel data de user weg mag schrijven)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is net zoiets als een forum, dus soms kunnen mensen best flinke berichten plaatsen. Voor de text, gebruik ik nu een veldtype "text" (MySQL).

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Het hangt van de character coding af hoe de text op je beeldscherm wordt vertoond. Vandaar dat het er soms "vreemd" uitziet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb hier niet zo veel kaas van gegeten... dus hoe kan ik er dan voor zorgen dat ze goed worden weergegeven? Dan moet ik de encoding goed zetten in mijn "html" document (waarschijnlijk UTF-8) ?

Acties:
  • 0 Henk 'm!

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Ik heb hier niet zo veel kaas van gegeten... dus hoe kan ik er dan voor zorgen dat ze goed worden weergegeven? Dan moet ik de encoding goed zetten in mijn "html" document (waarschijnlijk UTF-8) ?
Juist. Als je er voor zorgt dat je formpje al UTF-8 is (niet alleen in je HTML dit goed zetten, ook zorgen voor juiste HTTP headers!), dan gaan jouw speciale tekens als multibyte strings in het text veldje.
Als je dan met displayen ook weer UTF-8 gebruikt, verschijnen ze weer netjes.
Zelfs als je mad characters copy/paste van www.china.cn dan zijn die nog steeds goed opgeslagen 8)
Zie ook dit topic.
Pagina: 1