Gjest Slettet+6132 Skrevet 1. mars 2008 Del Skrevet 1. mars 2008 phpMyAdmin er da kompatibel med UTF-8, grunnen til at bokstavene ser rare ut er fordi de er lagret med ett tegnsett og vist med et annet. Sjekk egenskapene for tabellene/databasen. Lenke til kommentar
Garanti Skrevet 1. mars 2008 Forfatter Del Skrevet 1. mars 2008 Hvilket format skal jeg velge? Får samme feil uansett hvilket UTF8-versjon jeg velger! Lenke til kommentar
Gjest Slettet+6132 Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Du må velge UTF-8 før du legger inn data i tabellen om jeg ikke tar helt feil. Om du endrer til UTF-8 etter at det er lagt data i tabellen vil de gamle dataene fortsatt være i det gamle tegnsettet, tror jeg hvertfall. Lenke til kommentar
Flin Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Det er bare tull, min phpadmin er stilt inn på utf-8 og jeg er 100% sikker på at det er riktig tegnsett før jeg legger det inn i databasen, men alike vel så vises det rarer tegn inne i selve phpadmin. Når jeg henter det ut, funker det fint igjen. Jeg nekter å tro at det bare er jeg som har det sånn. Lenke til kommentar
Gjest Slettet+6132 Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Selv om du har det slik er det ikke slik det skal være, phpMyAdmin skal støtte UTF-8, så om du får rare tegn i phpMyAdmin har du gjort noe feil. Har du prøvd å velge English (UTF-8) som språk på login-siden? PS: Det heter phpMyAdmin, ikke phpadmin. Lenke til kommentar
Flin Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Nei jeg har ikke det, jeg drev å lurte på det samme her for en tid tilbake og uansett hva jeg prøvde for å rette på det så funkea det ikke. Lenke til kommentar
Ernie Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 (endret) Det kommer nok av at man ikke er konsekvent nok i forhold til tegnsett. Dette sto her før, men er «overkill» mysql_query("SET NAMES 'utf8'"); mysql_query("SET collation_connection='utf8_danish_ci'"); mysql_query("SET collation_server='utf8_danish_ci'"); mysql_query("SET character_set_client='utf8'"); mysql_query("SET character_set_connection='utf8'"; mysql_query("SET character_set_results='utf8'"); mysql_query("SET character_set_server='utf8'"); mysql_query("SET NAMES 'utf8' COLLATE='utf8_danish_ci'"); mysql_query("SET character_set_server='utf8'"); Skal man være bombesikker på at utf8 blir brukt må hver eneste av de begge linjene der (e.l. tilsvarende) kjøres før man jobber med data til/fra MySQL. Verdt å merke seg at dataene må kjøres inn i databasen på nytt for at ting blir riktig, hvis man har «tabbet» seg ut på punktet. Red.: SET NAMES kan sannsynligvis utelukkes siden den teknisk sett skal sette character_set_client, character_set_connection og character_set_result. Dog, merkelignok fungerer det ikke å utelukke de linjene og kjøre SET NAMES i stedet Red.2: Hmf! Nå fungerte det plutselig. Jaja. Uannsett, collation kan såklart settes i SET NAMES, og character_set_client, character_set_connection og character_set_result. Problemet er bare det at character_set_server ikke blir satt og må settes spesifikt. Da ble ting litt mer riktig tror jeg Endret 2. mars 2008 av Ernie Lenke til kommentar
Garanti Skrevet 2. mars 2008 Forfatter Del Skrevet 2. mars 2008 (endret) Så kan jeg gjøre sånn? <?php mysql_connect("localhost", "root", "passwd") or die(mysql_error()); mysql_select_db("cee") or die(mysql_error()); // Lage tablen users mysql_query("CREATE TABLE users( SET NAMES 'utf8' COLLATE='utf8_danish_ci', SET character_set_server='utf8', id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), UserName VARCHAR(30), PassWord VARCHAR(30), PostCount INT)") or die(mysql_error()); echo "table 'users' created successfully"; ?> EDIT: Nei, det kan jeg vel ikke. Hjelp! Hvordan lager man forresten en database gjennom PHP? Vet kun hvordan man lager det gjennom phpMyAdmin. Endret 2. mars 2008 av Garanti Lenke til kommentar
Ernie Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Nei, det er ikke slik du skal gjøre det. SET skal kjøres som separate spørringer hver gang du kommuniserer med MySQL. Skal du spesifisere tegnsett og «collation» for en tabell gjøres dette slik: CREATE TABLE users( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), UserName VARCHAR(30), PassWord VARCHAR(30), PostCount INT) DEFAULT CHARACTER SET utf8 COLLATE utf8_danish_ci; Forøvrig er det etter min mening en dårlig ide å la script opprette tabeller og databaser (litt synd hvis man er sårbar for SQL-injections for å si det sånn). Hvis du dog så absolutt må lage en database via script ser det slik ut: CREATE DATABASE navnPåNyDatabase DEFAULT CHARACTER SET utf8 COLLATE utf8_danish_ci; PS: Dokumentasjon er til for å leses Lenke til kommentar
Garanti Skrevet 2. mars 2008 Forfatter Del Skrevet 2. mars 2008 (endret) Virker fortsatt ikke! make_table_users.php: <?php mysql_connect("localhost", "root", "sofa") or die(mysql_error()); mysql_select_db("cee") or die(mysql_error()); // Lage tablen users mysql_query("CREATE TABLE users( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), UserName VARCHAR(30), PassWord VARCHAR(30), PostCount INT) DEFAULT CHARACTER SET utf8 COLLATE utf8_danish_ci;") or die(mysql_error()); echo "table 'users' created successfully"; Slik har jeg definert encoding i becomeuser.php <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />, og accept-charset="utf-8" i alle forms. Endret 2. mars 2008 av Garanti Lenke til kommentar
Ernie Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Kunne du utdype hva «Virker fortsatt ikke» betyr? Får du f.eks noen feilmeldinger? Lenke til kommentar
Garanti Skrevet 2. mars 2008 Forfatter Del Skrevet 2. mars 2008 (endret) Beklager at jeg virket uklar. Nei, ingen feilmeldinger, men æøå funker fortsatt ikke i mySQL. Endret 2. mars 2008 av Garanti Lenke til kommentar
Lokaltog Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 (endret) Prøv å legge inn dataene med utf8_encode() eller utf8_decode(), og se om det hjelper? Endret 2. mars 2008 av Lokaltog Lenke til kommentar
Garanti Skrevet 2. mars 2008 Forfatter Del Skrevet 2. mars 2008 Ja, har prøvd det, men det virker heller ikke. Lenke til kommentar
Ernie Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Beklager at jeg virket uklar. Nei, ingen feilmeldinger, men æøå funker fortsatt ikke i mySQL.Husket å kjøre mysql_query("SET NAMES 'utf8' COLLATE='utf8_danish_ci'"); mysql_query("SET character_set_server='utf8'"); på tilkoblingen før du har satt inn/hentet ut dataene? Prøvd å sette UTF8 spesifikt i HTTP-header (header('Content-Type: text/html; charset=utf-8'))? Prøv å legge inn dataene med utf8_encode() eller utf8_decode(), og se om det hjelper? Det har med saken å gjøre? De funksjonene er beregnet for konvertering mellom UTF8 og ISO-8859-1. Mao. sliter den litt med f.eks 'Iñtërnâtiônàlizætiøn'. Lenke til kommentar
Gjest Slettet+6132 Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Må man ikke også lagre PHP-filene med UTF-8-encoding? Lenke til kommentar
Ernie Skrevet 2. mars 2008 Del Skrevet 2. mars 2008 Må man ikke også lagre PHP-filene med UTF-8-encoding? Hvis du skal sette inn data som er hardkodet, så ja. Lenke til kommentar
Garanti Skrevet 2. mars 2008 Forfatter Del Skrevet 2. mars 2008 Ernie: Nå har jeg gjort det du spurte om her, men æøå virker fortsatt ikke. Lenke til kommentar
Garanti Skrevet 4. mars 2008 Forfatter Del Skrevet 4. mars 2008 Ingen som vet noe som kan hjelpe? Kan vel kanskje bytte ut æ, ø og å med henoldsvis æ, ø og &aaring vha. preg_replace, men det er jo ganske tungvindt Lenke til kommentar
Garanti Skrevet 6. mars 2008 Forfatter Del Skrevet 6. mars 2008 (endret) Tja, det var ikke særlig tungvindt likevel: $NorCharFind = array ("/æ/", "/Æ/", "/ø/", "/Ø/", "/å/", "/Å/"); $NorCharRepl = array ("æ", "Æ", "ø", "Ø", "å", "Å"); echo preg_replace($NorCharFind, $NorCharRepl, $somestring); Men er det noen som kan hjelpe meg med en filopplastingsscript som legger en fil i ønsket mappe, og navngir den med counter? Dvs. at den sjekker navnene på eksisterende filer før den legger til neste fil, som vil få høyeste nummer? Endret 6. mars 2008 av Garanti Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå