[MySQL] "ë" geeft melding Incorrect string value \x89

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

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
SQL:
1
2
mysql> insert into clubs values (null, 'Argentinië');
ERROR 1366 (HY000): Incorrect string value: '\x89' for column 'clubs_name' at row 1


Deze foutmelding krijg ik wanneer ik "speciale" tekens wil toevoegen in een varchar kolom. Ik dacht eerst dat dit kwam doordat ik geen UTF8 gebruikte, maar die gebruik ik wel. Op Google kan ik eigenlijk helemaal niks vinden, want ik kom op forum posts waarin iemand hetzelfde probleem heeft, maar een antwoord wordt eigenlijk niet gegeven.

Ik heb al gezocht op "MySQL diaeresis" (trema in het Engels), maar ook daar krijg ik niet veel hits uit... Misschien zoek ik wel helemaal verkeerd, maar ik kom er niet uit...

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


  • Soultaker
  • Registratie: September 2000
  • Nu online
Dit doe je op de console, right? Wat geeft dit voor uitvoer:
echo Argentinië | hexdump -C


(Overigens is \x89 wel raar, want dat zit noch in de Latin-1 noch in de UTF-8 encoding van ë).

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 07:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maar wel in de oude 437 codepage voor de IBM PC (en dus DOS): http://en.wikipedia.org/wiki/Code_page_437

[ Voor 18% gewijzigd door .oisyn op 27-04-2007 17:17 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Tanuki
  • Registratie: Januari 2005
  • Niet online
ë
EB
137 (hexadecimaal 89)
Deze is het dus.... Doet 'ie overigens niet alleen bij de ë, maar ook bij elk ander teken met een trema, circumflex, grave, etc.

Ik hoop alleen niet dat die URL mij had moeten helpen, want ik snap eigenlijk nog steeds niet wat het probleem is? :P Ligt het aan Windows? Heeft de Windows XP waar ik MySQL op draai niet de juiste charactersets geïnstalleerd?

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


  • Soultaker
  • Registratie: September 2000
  • Nu online
Mja, ik probeer je dus te helpen vast te stellen of het komt omdat je terminal verkeerd ingesteld is, maar als je me negeert...

edit:
Het gaat blijkbaar over Windows XP... dat had er ook wel even bij gemogen. Waarschijnlijk doet de console dan inderdaad die IBM extended ASCII; het gaat mis omdat de mysql client invoer als iets anders (UTF-8?) interpreteert. Stel je character_set_client ofzoiets goed in.

[ Voor 53% gewijzigd door Soultaker op 27-04-2007 21:08 ]


Verwijderd

Ik weet niet in welke taal het script geschreven is, maar waarom escape je dergelijke karakters niet? Of je filtert ze en zet ze om in HTML.

Het hoort natuurlijk te werken in een database lijkt me, maar sommige hosters lijken maar wat aan te klooien met hun software. Als het je eigen install is zou je naar de tips van Soultaker moeten kijken.

[ Voor 6% gewijzigd door Verwijderd op 28-04-2007 01:01 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 07:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nou, het is eerder dat mysql een UTF-8 invoer verwacht (omdat l0c4lh0st dat zo heeft ingesteld), terwijl hij een CP437 invoer krijgt via de console van Windows. En een 0x89 is nou eenmaal geen geldig UTF-8 character (tenzij hij wordt voorgegaan door een byte in de range 0xc2-0xff, of door een byte in de range 0xe0-0xff en een byte in de range 0x80-0xbf, of door een byte in de range 0xf0-0xff en 2 bytes in de range 0x80-0xbf, wat in het geval van "Argentinië" helemaal niet het geval is)

[ Voor 6% gewijzigd door .oisyn op 28-04-2007 01:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Voor zover ik weet is de MySQL-console überhaupt niet geschikt om met exotische charsets (en characters daarvan) aan de slag te gaan, die is namelijk zo ANSI als wat. Je kan dat veel beter op applicatieniveau of bijvoorbeeld met PHPMyAdmin even doen. Het is wel leuk dat ze zichzelf nu definitief op UTF-8 hebben gestort maar dat neemt niet weg dat de console meer bedoeld is om even snel een nummertje aan te passen of database aan te maken/weg te gooien.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • paulh
  • Registratie: Juli 1999
  • Laatst online: 28-11 15:14
SQL:
1
2
3
mysql> insert into clubs values (null, CONVERT( _utf8 'Argentinië'
USING latin1 )
COLLATE latin1_swedish_ci);

Probeer dit eens

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


  • Soultaker
  • Registratie: September 2000
  • Nu online
Het was dus geen Latin-1, hè. ;)

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 28-11 15:14
Nou ja, maakt opzich niet veel uit. Vervang Latin1 door de juiste characterset/collation en dan komt het vast wel goed.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]

Pagina: 1