Kom ihåg mig?
Home Menu

Menu


Problem med substr och ÅÄÖ

 
Ämnesverktyg Visningsalternativ
Oläst 2010-02-02, 09:57 #1
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Standard Problem med substr och ÅÄÖ

PHP-kod:
echo substr('Monday'03); //Skriver ut Mon, förväntas Mon
echo substr('Måndag'03); //Skriver ut Må, förväntas Mån 
Hur kringgår man detta problem? Att åäö verkar räknas som två tecken var.

PHP-kod:
echo strlen('å').'<br>'//Skriver ut 2 
Har inte för mig att det varit såhär tidigare... Aldrig haft problemet innan...
Dokumentet är sparat som UTF-8 (utan BOM), samt att jag lagt till header('Content-type: text/html; charset=utf-8');
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-02, 10:15 #2
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Använd mb_substr istället.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-02, 11:43 #3
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Använd mb_substr istället.
tack... men varför är det så här dumt gjort?
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-02, 11:48 #4
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Enkelt förklarat, UTF8 sparar icke-ASCII i två bitar (två tecken). Jmfr. "two bit characters"
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-02, 11:51 #5
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Kan väl tillägga att du inte är ensam om att få problemet och även om man har vetat om det förut så hinner man glömma det till nästa gång och då sitter man och kliar sig i skallen och undrar varför...
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-02, 12:09 #6
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av grinditwp Visa inlägg
tack... men varför är det så här dumt gjort?
Har du en bättre lösning? Det finns en hel del tecken som ryms inom utf-8.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-03, 23:43 #7
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Har du en bättre lösning? Det finns en hel del tecken som ryms inom utf-8.
njä, men syftade väll snarare till varför substr + andra funktioner inte automatiskt åtgärdade detta. Kan inte komma på en vettig situation då man faktiskt vill att det skall fungera som det gör nu, istället har man skapat en annan liknande funktion :P onödigt
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-03, 23:54 #8
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Det är hål i huvudet att inte bygga funktioner som klarar av UTF från början. Ett tråkigt utslag av amerikansk etnocentricitet.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-04, 06:44 #9
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Citat:
Ursprungligen postat av grinditwp Visa inlägg
njä, men syftade väll snarare till varför substr + andra funktioner inte automatiskt åtgärdade detta. Kan inte komma på en vettig situation då man faktiskt vill att det skall fungera som det gör nu, istället har man skapat en annan liknande funktion :P onödigt
Då har du förstås aldrig jobbat med binärdata heller? Det finns gånger då man vill veta hur många byte det är utan att funktionen gör automatiska antagningar om teckenkodningen.

Dessutom står det ju klart och tydligt i manualen vilken teckenkodning funktionen använder (ISO-8859-1 som resten av PHP). Det är du som vill köra en annan teckenkodning än funktionen är byggd för. Fast visst vore det smidigt om substr hade samma funktion som mb_substr har idag, med en tredje parameter för teckenkodningen.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-04, 06:49 #10
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Citat:
Ursprungligen postat av Magnus_A Visa inlägg
Det är hål i huvudet att inte bygga funktioner som klarar av UTF från början. Ett tråkigt utslag av amerikansk etnocentricitet.
Det står var och en fritt att laga PHP. Dess rötter är i ett fulhack från långt tillbaka, så det är klart att inte allt bytt till det senaste på tapeten. UTF-8 var bara ett par år gammalt när första versionen av PHP skapades. Användningen av ISO-8859-1 var däremot utbredd.

Vad Israel har med "amerikansk etnocentricitet" att göra vet jag dock inte; PHP är som bekant en israelisk produkt.
emilv ä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 21:35.

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