Har försökt få detta skript att fungera som det bör. Normalt sett är det ett bra galleriskript som jag kan rekommendera men en sak får jag bara inte att funka. ÅÄÖ blir åäö. Det gäller enbart skriptet och inte resten av sidan.
Min första tanke var UTF8 men det har jag använt rakt igenom så jag vet inte vad mer det kan vara än något i koden. Är inte så haj på php ännu så om någon kan ge lite tips eller ta en titt på koden så vore det tacksamt. Den finns på länken ovan.
TroxyMedlem sedan mars 20041 505 inlägg Posta en länk till scriptet som du har lagt upp istället :)
Det verkar som webbläsaren tror att scriptet kör latin-1 istället för utf8.
yockeMedlem sedan jan. 20085 inlägg Spara om filen som UTF-8 Encode format..
Normala fall sparar OSet filerna i ANSI encode som default..
När du sparar din fil så, välj Spara Som ->Teckenkodning: UTF-8. Normalt står det som yocke sa, ANSI.
Alla filer sparas som UTF8 per standard så det verkar inte vara det. Skriptet heter som sagt mygallery och ligger på länken ovan. Länk till sidan det gäller.
Hade föresten liknande problem med skriptet mynews från samma person. Dock hittade jag en patch på detta som funkade fint.
TroxyMedlem sedan mars 20041 505 inlägg Något har blivit ganska knäppt :)
Vad använder du för editor/program när du redigerar sidorna?
Alla "felaktiga" tecken har något automagiskt sätt omvandlats till html-entities.
T.ex. alla å-tecken ser ut såhär i html-koden:
Ã¥
Med andra ord, det verkar som allting är rätt vad gäller teckenkodningen.
Nu måste du bara ersätta alla html-entities med rätt tecken.
Jag använder bluefish.
Skripten känns minst sagt knakiga på denna punkt. Det andra skriptet jag patchade funkar t.ex. bra bara man inte ändrar. Ändrar man ett inlägg så ändras rubriken till "html-entities" medan meddelandet förblir OK. Mycket skumt.
Håller på att fixa en klubbhemsida så det behöver funka. Annars blir det bara groll.
Hur menar du att man förhindrar konverteringen?
Har kollat lite mer och ser att jag lagt till sk. html entities. I detta fallet så är de översättningar på olika kommandon osv.
Dessa visas ok. Det som inte visas ok är allt som lagts till från hemsidan.
Jag raderade alla strängar med htmlentities varpå allt blev bra!
Tackar så mycket för tipset Troxy! Har lärt mig en hel del från detta.
TroxyMedlem sedan mars 20041 505 inlägg Varsågod :)
Det vore dock intressant att se en rad eller två ur koden som du raderade.
Jag är nämligen övertygad om att grundproblemet är att PHP:s stränghantering haltar väldigt mycket vad gäller teckenkodning.
Ändrade t.ex:
if ($cap!=""){
if ($ok===false) $newid=$id;
$caps.="$newid|".htmlentities($cap, ENT_QUOTES)."\n";
}
till:
if ($cap!=""){
if ($ok===false) $newid=$id;
$caps.="$newid|";
}
Och:
$galleries[$nextindex]=array($nextindex, htmlentities($_REQUEST['mggallery'], ENT_QUOTES), nltobr(htmlentities($_REQUEST['mgdescr'], ENT_QUOTES)));
till:
$galleries[$nextindex]=array($nextindex, $_REQUEST['mggallery'], nltobr($_REQUEST['mgdescr']));
Dessa och några få rader till med htmlentities löste det för mig.
TroxyMedlem sedan mars 20041 505 inlägg Eftersom UTF-8 omfattar så många tecken så behövs nästan inte några entities.
Dock så måste man fortfarande använda entities för speciella HTML-tecken, t.ex. citationstecken mfl.
Det finns en funktion för det som heter htmlspecialchars.
Den tar även hänsyn till UTF-8 om man anger det, förslagsvis såhär:
htmlspecialchars($cap, ENT_QUOTES, 'UTF-8');
Trevlig helg! :)
Tackar för tipset! Blir lite helgläsning.
JenzaMedlem sedan feb. 200287 inlägg Jag har samma problem med cutenews. Jag lade in scriptet
<?PHP
$number = "5";
include("path/to/show_news.php");
?>
i en html-fil, döpte om filen till .php men den visar ändå å, ä och ö som rutor och grejjer. Skulle jag ha gjort på ett annat sätt? I filen finns metataggen:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
*Edit* Löst! Ändrade charset till iso-8859-1 och då funkar allt klockrent.