Kom ihåg mig?
Home Menu

Menu


UTF8-output från PHP

Ämnesverktyg Visningsalternativ
Oläst 2006-08-19, 20:54 #1
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Hej

När jag skickar utdata från PHP-skript i UTF8 så inleds utdatan alltid med
följande tecken: "".

Vad kommer dessa tecken ifrån?
Måste PHP-scriptet kodas i utf-8?
Skall man använda utf8_decode och utf8_encode?

Jag har utdata både från MySQL och från andra sidor som mitt script laddar hem
och extraherar data ifrån.

/Andreas
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-19, 22:26 #2
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Det där är BOM (Byte Order Mark) i början av UTF-8 filen. Det går att spara UTF-8 filer utan de, men det är ju din editor som avgör. Sen är det frågan om just din PHP-fil måste vara UTF-8 enkodad bara för att du hanterar UTF-8 data. Det behöver den inte nämnligen.
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-21, 19:31 #3
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
OK, tack!
Är "" ett tecken eller tre?
Hur kan man ta bort dessa tecken i PHP??

/Andreas
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-21, 20:00 #4
Pucken Pucken är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 94
Pucken Pucken är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 94
Citat:
Originally posted by andi@Aug 21 2006, 19:31
OK, tack!
Är "" ett tecken eller tre?
Hur kan man ta bort dessa tecken i PHP??

/Andreas
Vilken texteditor använder du?
Pucken är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-21, 21:30 #5
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
Ett tips är att det finns en extension: multibyte, som klarar av att göra t ex preg_match på åäö om dessa är kodade i utf-8. Har börjat hata det faktum att jag numera programmerar i UTF-8 i editorn, och sparar texter som utf-8 i databasen, vilket ger upphov till diverse problem här och var i de inbyggda funktionerna, när man har åäö i texten.

Har något ett bättre förslag på hur följande kod kan skrivas under omständigheterna? (mb_split finns inte installerat)

Koden tar ut de ord som förekommer i strängen $phrase, och returnerar dem som array.

Kod:
$phrase = utf8_decode($phrase); 
 
/**
* Det vore bättre att använda multibyte extension (ej installerad som standard).
* 	mb_internal_encoding('UTF-8');
* mb_regex_encoding('UTF-8');
* //setlocale(LC_ALL, 'sv_SE');
* 	mb_split(...);
*/

$words = preg_split('/[^a-z0-9\-?????????????]+/', strtolower($phrase), -1, PREG_SPLIT_NO_EMPTY); 
 
// Vi vill ha tillbaka allt i utf-8 igen
foreach ($words as $i => $word) {
	$words[$i] = utf8_encode($word);
}

Där alla ???? står har jag skrivit in specialtecken såsom åäöáà, etc. Pga att php-filen sparas som utf-8 blev dock detta fel, eftersom preg_split vill ha tecken i iso-8859-1. Mycket fult... Istället öppnade jag alltså filen som iso-8859-1 och skrev in dessa tecken, och sparade filen. Nu ser det ju rätt fult ut... Kanske vore det bättre att skriva in dem som utf-8 och sedan köra en utf8_decode på tecknen... hm... nåja... synpunkter på det hela?
koala ä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 19:42.

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