Toon posts:

Chinees in MySQL DB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een SQL database met een veldje: Chinees, utf8_general_ci. De database zelf is charset: UTF-8 Unicode (utf8).

Er zit wat data in de database, maar op een of andere manier is het op deze manier opgeslagen:
code:
1
Автомоб


Nu heb ik een zoekfunctie die deze velden doorzoekt. Aangezien het chinese tekens betreffen zullen in de zoekbalk chinese tekens worden ingevoerd. Deze worden op dit moment niet gevonden. Als er wordt gezocht op bijvoorbeeld: в werkt het wel.

Nu is het mij ook gelukt om gewoon chinese tekens in de database te krijgen, maar als ik dan zoek via de zoekbalk, krijg ik ook geen waardes terug.

Ik dacht dat het misschien kon zijn dat ik de zoek-variabele convert naar 'в'-soort. Echter weet ik de benaming hier niet van.

Via google en php.net heb ik al wat geprobeerd met htmlentities, utf_8_encode en decode, maar niets van dit biedt uitkomst en de bruikbare zoekresultaten op google zijn wat schaars geworden..

Weet iemand waar ik op moet zoeken? of wat ik kan doen?

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

Volgens mij moet je binnen je applicatie ook aangeven met welke charset mysql geconnect moet worden.

iets met "USE utf8" als query sturen.

openkat.nl al gezien?


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10:26

TeeDee

CQB 241

MySQL en double-byte?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
@ Killercow, dat heb ik ook voorbij zien komen op google inderdaad. Dan zet je bij je connectie welke charset er gebruikt wordt, maar dit hielp niets.

@TeeDee: sorry, die snap ik niet :)

Ik wil eigenlijk die mooie waardes uit de database (wat eigenlijk dus chinese karakters zijn) terug converteren. Of de ingevoerde waarde bij de zoekopdracht converteren naar die code-waar-ik-de-benaming-niet-voor-weet.

Dus iets als
PHP:
1
('SELECT Chinees FROM Talen WHERE Chinees = converteernaardiecode('HTTP_GET_VARS['zoekwaarde']')

@TeeDee: sorry, die snap ik niet :)

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Als de karakters als entiteiten zijn opgeslagen, betekent dat waarschijnlijk dat de karakterset in de HTML-pagina niet ingesteld staat op utf-8.

HTML:
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Developer Accused Of Unreadable Code Refuses To Comment


Verwijderd

Topicstarter
In de PHP pagina is het characterset wel ingesteld op UTF-8. De entiteiten worden ook gewoon terug-geparsed vanuit de database naar de chinese karakters. Dat werkt uitstekend.

Echter, dat is niet wat ik wilde bereiken, ik zal nog een poging doen :)

Ik heb een zoekfunctie, waarin chinezen chinese tekens gaan invoeren.
Echter deze tekens staan niet als zodanig in de database, maar als entiteiten.
Ik wil dat de ingevoerde chinese tekens in de zoekbalk worden omgezet naar entiteiten,
en dat dan door de query in de database wordt gezocht op deze entiteiten en niet op de chinese karakters.

Of is er hiervoor een betere manier?

[ Voor 4% gewijzigd door Verwijderd op 22-03-2007 17:27 ]

Pagina: 1