Just nu i M3-nätverket
Gå till innehåll

charset


jan-erik

Rekommendera Poster

Är det så att javascript använder sig av UTF-8, och att detta kan vara skälet till att så snart jag använder mig av ajax.updater så får jag problem med åäö?

Allting ser ok ut när jag kollar i mysql, allting blir ok om jag direkt lägger ut på skärmen, men så snart jag anropar ett annat script med hjälp av updater så blir det snett. Man får vissa belägg för att det är så när man googlar "charset ajax updater", men jag är inte säker.

I så fall antar jag att jag måste definera all fält i mysql som utf-8, och ändra headern som nu är 8859-1?

 

[inlägget ändrat 2008-04-15 15:46:48 av jan-erik]

Länk till kommentar
Dela på andra webbplatser

Inget direkt svar på din fråga men det finns väl ingen anledning att inte använda utf-8 i alla led?

//eforum.idg.se/viewmsg.asp?EntriesId=1002130#1002220

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Är filerna sparade i UTF-format? Jag menar alltså inte om du använder UTF-8 i din HTML-kod, utan om filen fysiskt är sparad som UTF-8?

 

Detta ser du enklast genom att öppna filen i notepad och sen välja "spara som". Längst ned i spara-dialogen finns valet Kodning. Står det UTF-8 där?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Det är mysql-filer, och jag vet inte riktigt hur jag ska kola dom i notepad. Men, om jag har anget utf-8 när jag skapade tabellen i mysql, och sedan anger utf8 även inför läsning i PHP, då borde det väl funka?

 

 

Länk till kommentar
Dela på andra webbplatser

Nu har har jag angett utf-8 för det aktuella fältet vid skapandet av tabellen i mysql.

Det är ett php-script som lägger in poster i tabellen, och i detta har jag angett header...utf-8.

Jag läser in tabellen i ett annat php-script, och lägger ut texten på skärmen med echo.

Allting är helt ok.

Sedan använder jag mig av ajax/updater för att länka till ett tredje php-script, och när detta lägger ut på skärmen så är åäö förvrängda.

Några tips, jag vet inte vad som mer kan göras.

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson
Det är ett php-script som lägger in poster i tabellen, och i detta har jag angett header...utf-8.

 

Ja, men det jag undrar är om filen är sparad som UTF-8, inte vilket header du använder,

 

och när detta lägger ut på skärmen så är åäö förvrängda

 

Vad blir det istället?

 

Set det rätt ut om du väljer att visa källa?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Alla skript/markup filer (vare sig det är js, html eller php) skall alltså vara sparade som UTF-8 så som Mr Andersson säger.

Har du kontrollerat det?

 

/Cluster

------------------------------------------------------

I do not fear computers. I fear the lack of them

--------> http://eforum.kicks-ass.net <---------

 

Länk till kommentar
Dela på andra webbplatser

Jag använder DW, och vet inte riktigt vilket format som DW sparar filer i.

 

Vad blir det i stället, frågar du.

Mycket konstigt.

ö blir FYRKANTtd>

ä blir fyrkant, men mer än så: träning bli trFYRKANTng

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson
Jag använder DW, och vet inte riktigt vilket format som DW sparar filer i.

 

Jag har inte DW själv, men om du gör testen jag skrev ovan, så vet vi snart om det är det som är problemet eller något annat.

 

 

 

Länk till kommentar
Dela på andra webbplatser

plockade fram php-scriptet i notepad, och det är tydligen kodat som ANSI.

Då måste jag väl kolla i DW om detta är nåt jag kan påverka med en inställning.

Lite märkligt är det, jag har jobbat med DW i 3 år och aldrig stött på nåt prolem med detta förrän nu. Och det är helt klart kopalt till Ajax/Js, eftersom det blir rätt om jag lägger ut det strax innan jag skickar det med ajax updater.

 

Länk till kommentar
Dela på andra webbplatser

Nu gjorde jag så att jag sparade dom två php-scripten som utf i notepad, och skickade sedan upp dom till servern. men det förefaller inte hjälpa. Antagligen är jag lite för trött o rör säkert till det.

 

Länk till kommentar
Dela på andra webbplatser

Jag har spånat lite på nätet, och detta är tydligen ett problem för många, utan entydig lösning.

jag har följt de råd jag hittat:

Alla filer sparade som utf-8 i notepad

I .htaccess har jag lagt till "AddCharset UTF-8 .php"

I alla <script> har jag lagt till 'charset="utf-8"'

i Head har jag

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

I mysql har jag def fälten som utf-8.

 

men det funkar ändå inte.

 

Länk till kommentar
Dela på andra webbplatser

Hmm.... kan det vara så att den data som redan förts in i databasen inte var utf-8?

 

/Cluster

------------------------------------------------------

I do not fear computers. I fear the lack of them

--------> http://eforum.kicks-ass.net <---------

 

Länk till kommentar
Dela på andra webbplatser

De data som förs in i den aktuella tabellen kommer från en annan tabell. Mottatgarefältet är definierat som utf-8, och då bör det väl inte spela nån roll vad sändarefältet har?

Om jag skriver ut tabellen direkt i phpMyAdmin så ser allting ut precis som det ska.

Att "ö" blir 4KANT/td, tyder inte det på en förskjutning av nåt slag?

å och ä blir bara 4Kant i IE, men ? i ff.

 

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Hade glömt denna tråd. Hur har det gått för dig, har du kommit närmare en lösning på problemet?

 

/Cluster

------------------------------------------------------

I do not fear computers. I fear the lack of them

--------> http://eforum.kicks-ass.net <---------

 

Länk till kommentar
Dela på andra webbplatser

Nä, har gett upp tanken att kunna få någon vett i vad som egentligen gäller, och uppenbarligen vet ingen annan i heller. jag har gjort precis allt till utf-8, (skript, mysql, etc), allting ser helt rätt ut i mysql, men jag får ändå ut skräp på skärmen. Om jag däremot lägger in en header/8859-1 så blir det ok i de flesta fall, men inte i alla.

Kom inte o säg att det är räta linjer i webben.

Det är tydligen så att ajax stökar till en del i detta avseende.

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane
I mysql har jag def fälten som utf-8.
Har du även sparat själva databasen(samt databas-tabellerna) som utf-8?

 

Ibland kan det vara bra(enda/snabbaste alternativet) att kopiera in det till nya php-filer/databaser och spara det återigen i utf-8 för att lösa ett "mystiskt" problem.

 

Kom inte o säg att det är räta linjer i webben.
En och annan böj är där allt ;)

 

[inlägget ändrat 2008-05-15 11:10:13 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Jag kan inte hitta nåt som skulle kunna vara utf-8 som inte är det. menar du att i stället för att ändra php/mysql-object till utf-8 så skulle man i stället regenerara till utf-8? Låter som en god ide, då kan man ju samtidigt passa på att sätta lite vettiga namn, rensa bort skräp etc.

 

Det som är mest frustrerande är att när jag väl kom underfund med hur jag skulle tillämpa lite modern teknik (ajax etc) så kan jag inte längre få ut nåt vettigt på skärmen, vilket aldrig tiidgare varit något som helst problem.

 

I Dreamweaver har jag nu fixat så att när jag skapar en ny sida/script så blir det med encoding utf-8. Då borde jag ju kunna öppna de nuvarande scripten, och sen använda mej av "spara som" för att skapa nya script som utf-8, eller hur.

Och vad gäller mysql borde jag kunna göra nåt motsvarande, dvs kopiera nuvarande tabeller (allt i en databas, 50 tabeller) till nya tabelelr i en ny databas. Eftersom jag även här nu valt encoding utf-8 så borde detta ju funka.

Om det då ändå inte funkar så kommer jag att gå omkull.

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane
Då borde jag ju kunna öppna de nuvarande scripten, och sen använda mej av "spara som" för att skapa nya script som utf-8, eller hur.
Bättre, tycker jag, är att "klipp och klistra". Inte alls blanda in den/dem gamla filen/filerna i sparadet av dem nya.

 

Länk till kommentar
Dela på andra webbplatser

databas TJLIST har kollationering utf-8, enligt phpmyadmin.

så här ser tabellen "events" ut:

events  1 254 MyISAM utf8_swedish_ci 

 

så här ser tabellfältet "txt01" ut:

txt01 varchar(50) utf8_swedish_ci 

 

värdet i fältet txt01 = "träning" enl phpmyadmin

 

i följande starkt bantade phpsnutt läser jag tabell "events" och skriver ut "txt01" med echo. Php ligger som utf-8, kollat med Anteckningar.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<? 
include "TJanslut.php"; 
$w1=1373;
$query=("SELECT * FROM events WHERE evid=$w1") or die(mysql_error()); 
$result=mysql_query($query);
$num=mysql_numrows($result);
$txtj=mysql_result($result,0,"txt01");

echo $txtj;?>
</body>
</html>

 

Resultatet blir att "ä" i träning blir en fyrkant i IE, och ?fyrkant i FF.

obegripligt.

 

Länk till kommentar
Dela på andra webbplatser

Kan ingen försöka förklara för mej hur det kan komma sig att jag inte får ut "ä" i tränintg, utan en 4kant? Vad jag förstår så kan det ju inte bli enklare.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...