problem med att databasen inte visar åäö

Permalänk

problem med att databasen inte visar åäö

Och jag fattar inte vad felet är. När jag skriver ut å,ä eller ö från databasen så visas endast �.

:/

Jätte tacksam för svar då jag måste kunna skriva ut åäö!!

Mvh

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Medlem

Se till att du har samma charset i databasen som där du printar ut texten.

Permalänk

men hur ändrar jag det till UTF-8? hittar inte.

Använder phpmyadmin btw

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Medlem

För det första måste du sätta databasen som utf8.. sedan måste du sätta fälten som utf8 sedan måste du sätta databaskopplingen som utf8 sedan msåte du sätta apache som utf8 sedan måste du sätta html'en som utf8

Permalänk
Medlem
Skrivet av =JoNaZ=:

För det första måste du sätta databasen som utf8.. sedan måste du sätta fälten som utf8 sedan måste du sätta databaskopplingen som utf8 sedan msåte du sätta apache som utf8 sedan måste du sätta html'en som utf8

När man ändå är igång kan man sätta PHP till UTF-8 om det är det man använder
(Och inte glömma att spara filerna i UTF-8 kodning också)

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk

Insåg nu att problemet uppstår när jag använder den här if-statsen :S

if(strlen($row[rubrik]) >= 30){ $row[rubrik] = substr($row[rubrik], 0, 27) ."..."; echo ucfirst (strtolower($row[rubrik])); } else{ echo ucfirst (strtolower($row[rubrik])); }

EDIT: Alltså har jag satt databasen och filer i UTF-8 men utav någon anledning så bryter substr UTF-8 och mb_substr vill inte göra någon skillnad :/

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Medlem
Skrivet av Jooh4n:

Insåg nu att problemet uppstår när jag använder den här if-statsen :S

Jag tror det är ucfirst som förstör. Testa att behålla if-satsen men ändra den funktionen och se om du får ut vettiga tecken.

Skrivet av Jooh4n:

if(strlen($row[rubrik]) >= 30){

Såg nu att du dessutom har ett fel i detta stycket: if(strlen($row[rubrik])

är rubrik en variabel eller en sträng? Om det är en variabel ska du ha $ framför och om det är en sträng måste du använda " eller ' runt den.

Visa signatur

Kom-pa-TI-bilitet

Permalänk

EDIT: Jag fixade det!! Jag använde mb_strtolower() istället för strtolower() och mb_substr() istället för substr(), sedan vad jag tvungen att skriva till "mb_internal_encoding("UTF-8");" över den andra koden. Tack för all hjälp!

det är en hämtning från databasen så antagligen en sträng. Men det visar resultat som det ska ändå, gör ingen skillnad om jag lägger på ' eller ".

Måste få klart detta, då är all PHP kodning på sidan klar och jag behöver bara skapa undersidor.

EDIT: Det var inte ucfirst som förstörde utan strtolower(), någon som vet hur man kringgår detta?

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR