[HTML/MySQL] Character-set werkt NET niet

Pagina: 1
Acties:
  • 145 views sinds 30-01-2008
  • Reageer

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Eerder had ik al een topic gepost over het gebruik van een Russische karakter-set in combinatie met MySQL.

Alle tips in dat topic heb ik opgevolgd, waarvoor (nogmaals) dank.

Het vreemde is nu, dat het bijna werkt, maar NET niet.

De teken-reeks die ik als test heb is:
code:
1
фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯБЮ.ЭЖХЪ

edit: ik zie dat het hier in het topic niet goed wordt weergegeven ... het zou dus een reeks van russische karakters moeten zijn.

Dat is a-zA-Z + wat extra tekens.
Nu wordt deze string goed opgeslagen, op 4 karakters na. Die worden als 2 vraagtekens weergegeven in Firefox en als vierkantje in Internet Explorer.

Als ik via phpMyAdmin in mijn table kijk, dan zie ik dat de bovenstaande string is opgeslagen als
code:
1
фиÑ?вуапршолдьтщзйкыегмцчнÑ?ФИСВУÐ?ПРШОЛДЬТЩЗЙКЫЕГМЦЧ


Dat komt bekend voor als UTF-8 karakters ... maar klopt het wel dat het zo wordt opgeslagen?
Wanneer ik in phpMyAdmin zelf het record wijzig en bovenstaande (originele) russische string invoer ... dan wordt hij ook als zodanig weergegeven.

Ik ben even de draad kwijt. 8)7

[ Voor 4% gewijzigd door gvanh op 12-01-2007 00:18 ]


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Is er een moderator die deze posting zou willen verplaatsen naar "Programming". Na verder onderzoek gisterennacht en vanmorgen heb ik het idee dat het meer een MySQL probleem is dan iets anders.

Uiteraard kan ik het ook opnieuw posten ... maar dan krijg je van die dubbele verhalen als je gaat zoeken.

Alvast dank!

[ Voor 97% gewijzigd door gvanh op 12-01-2007 09:30 . Reden: transfer-request ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Oke :)

In het vervolg kun je hier beter een TR voor aanmaken, dan valt hij meer op.

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Dank je wel voor de move.

Wat is een TR?

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Nog even een aanvulling op mijn verhaal:

Het gaat specifiek om 1 karakter in de set (zowel lowercase als uppercase, dus eigenlijk 2), die problemen geeft.

Wanneer ik met mb_detect_encoding() het karakter bekijk, geeft hij wel aan dat het UTF-8 encoded is. Verder heb ik gekeken naar een eventueel verschil met de andere karakters... maar voor zover ik in PHP kan achterhalen zijn het allemaal 2-byte stringcodes. Geen verschil ook daarin dus met de andere karakters.

Maar wanneer ik in MySQL een vergelijking doe met LIKE op dat ene karakter, dan krijg ik de foutmelding:

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation 'like'. En dat is dan dus op 1 karakter.

Ik snap er weinig meer van.

[ Voor 16% gewijzigd door gvanh op 12-01-2007 10:59 . Reden: aanvulling 2-byte string ]


  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Death smiles at us all, all a man can do is smile back.
PSN


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Je zal overal met UTF-8 moeten werken; zowel in de tekst editor waarin je de PHP-files maakt, als in je database, als in je HTML-uitvoer moet de encoding op UTF-8 staan. Daarna zou het moeten werken. :)

En TR staat voor topic report en een TR kun je maken met het handje (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif) bovenaan elk topic.

[ Voor 31% gewijzigd door NMe op 12-01-2007 13:02 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Aha! Dat handje was me nooit eerder opgevallen ... thanks!

PHP:
1
2
3
4
<?php
mysql_query ("SET NAMES UTF8");
mysql_query ("SET CHARACTER SET UTF8");
?>


Dat was de oplossing voor het probleem!
Dank voor de verwijzing naar het andere topic!
Pagina: 1