Kom ihåg mig?
Home Menu

Menu


Konstiga tecken i databasen

Ämnesverktyg Visningsalternativ
Oläst 2011-11-27, 20:14 #1
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
Standard Konstiga tecken i databasen

Hej!

Jag har sökt runt lite på olika forum etc för att försöka varför jag får konstiga tecken i min databas. Jag har förstått att det har någonting med kodningen att göra. Malmö blir exempelvis: Malmö


Jag använder mig av espresso och alla mina filer visar där UTF-8.
Mina databastabeller är sparade i latin1_swedish_ch. Jag har även testat att byta till UTF-8-Swedish vilket inte har hjälpt, samma problem uppstår även då.

Min topp av sidan ser ut såhär:
Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Väljer jag att skriva ut Malmö på hemsidan istället för att spara den i databasen så skriver den korrekt ut Malmö. Men något blir som sagt fel när den sparar i databasen. Samma sak gäller konstigt nog siffror, den klarar av att skriva ut 1 799 på hemsidan men om jag sparar det i databasen så blir den endast 1.

Jag skulle vilja ha hjälp med att lösa detta, jag förstår inte vad det beror på.
Tack på förhand!
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-11-27, 20:35 #2
frecka frecka är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2011
Inlägg: 410
frecka frecka är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2011
Inlägg: 410
Kolla om det blir någon skillnad:

När du byter teckenkodning på dokumentet som skickar datan
När du har en meta charset utf8
När du har en doctype
När du har databasen till utf8_general_ci
När du skickar in saker som gått genom funktionerna: utf8_decode() eller utf8_encode() i databasen.
frecka är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-11-27, 21:28 #3
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
Angående ditt 1799 fel, se över din kod så du inte är sårbar för sql injections.
Och ditt åäö problem, prova att sätta teckenkodning i anslutningen till databasservern också: mysql_set_charset('utf8',$link);
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-11-27, 22:04 #4
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
Citat:
Ursprungligen postat av najk Visa inlägg
Angående ditt 1799 fel, se över din kod så du inte är sårbar för sql injections.
Och ditt åäö problem, prova att sätta teckenkodning i anslutningen till databasservern också: mysql_set_charset('utf8',$link);
Tack så mycket, mysql_set_charset('utf8',$link); löste mina problem.
Jag kom även på att mitt problem med 1 799 som blev 1 berodde på att databasen kapade vid mellanslaget då jag har formatet int eftersom att det ska vara ett pris. Vad är den bästa lösningen för detta? Ett regulärt uttryck som kollar om det finns mellanslag eller finns det en bättre lösning?
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-11-28, 09:00 #5
frecka frecka är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2011
Inlägg: 410
frecka frecka är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2011
Inlägg: 410
spara allt som siffror, sen kan du med några fiffiga string funktioner sätta in mellanslag. Kolla på strrpos() och substr()
frecka är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-11-28, 10:57 #6
BarateaUs avatar
BarateaU BarateaU är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Nov 2007
Inlägg: 2 648
BarateaU BarateaU är inte uppkopplad
Klarade millennium-buggen
BarateaUs avatar
 
Reg.datum: Nov 2007
Inlägg: 2 648
Om du vill göra det lätt för dig och samtidigt fixa allt.

Dunka ner database filen lokalt, sedan ladda ner notepad++, sedan kör find&replace på alla dessa.

Å Ã…
Ä Ã„
Ö Ã–
å Ã¥
ä ä
ö ö
é é
á á
ü ü
ÿ ÿ
É Ã‰
Á Á
Ü Ãœ
Ü Ãœ


14 ggr får du starta "find&replace" och detta lär du fixa på under 1 minut om inte databasen är jätte stor för så tar genomsökningen lite längre tid.
BarateaU är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017