Kom ihåg mig?
Home Menu

Menu


Problem med substr och ÅÄÖ

 
Ämnesverktyg Visningsalternativ
Oläst 2010-02-04, 09:59 #11
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
Suck. Den typen av argument (är du inte nöjd med opensource så skriv om det själv då) trodde jag vi hade lagt bakom oss på ett sånt här forum.
Visst kan jag skriva om hela PHP, blir säkert klar i eftermiddag, eller kanske till lunch om jag jobbar på, men det är strategiska beslut i bakom sådant som vilka teckenkodningar man ska stödja och det är generellt sett påfallande ofta amerikanska utvecklare som utgår från att världen inte behöver något annat än latin1 och att man kan bortse från resten av världens bokstäver.
Rasmus Ledorf som är den ursprunglige skaparen av PHP är inte israel, utan snarare född grönländare, delvis uppvuxen i och numera bosatt i Kanada. Om Gutmans eller Suraski ägnade teckenfrågan en tanke vet jag inte. Jag är tillräckligt gammal för att ha varit med på den tiden man använde 7-bitars teckenkod och vet att det inte var lätt att tänka mångfald om tecken då, men ett dåligt beslut är ett dåligt beslut även om man inte visste bättre då.
Nu har PHP vänt strategi och ska hantera UTF fullt ut vilket gör att jag sliper skriva om hela kodbasen själv som du föreslår. Men gamla funktioner finns tyvärr fortfarande kvar och används antagligen slentrianmässigt även i nyskrivna projekt. I manualen noteras inte att substr() inte hanterar UTF korrekt utan det får man reda på först när man läser användarnas kommentarer. En uppdatering där borde man unna sig.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-04, 11:02 #12
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 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.
Nja, det är väl inte helt sant. UTF var inte särskilt utbrett tidigare och flera av Sveriges största sajter använder det ännu inte. Det finns ingen större anledning att byta till UTF om man inte kör det från första början vilket givetvis är att föredra.

Det känns ändå mer logiskt att behålla de gamla funktionerna som de är och införa nya för mb-uppsättningar precis som man gjort. Att köra mb-funktioner är dessutom betydligt långsammare i många fall, särskilt vad gäller strtoupper och strtolower.

Det finns ingen större poäng med att skriva kommentarer på varje sträng-funktion utan där ska endast viktig och EJ överflödig information finnas med för att manualen ska vara just snabb, smidig och översiktlig. Övrigt hör hemma just i användarkommentarerna. Det framgår med all önskvärd tydlighet redan i de inledande styckena i manualen hur tecken och strängar i PHP är uppbyggda:

http://www.php.net/manual/en/language.types.string.php

Citat:
A string is series of characters. Before PHP 6, a character is the same as a byte. That is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode.
Hur variabler och typning fungerar är väl ändå bland det första man lär sig när man tar sig an ett nytt programmeringsspråk?
__________________
Full-stack developer, free for smaller assignments

Senast redigerad av tartareandesire den 2010-02-04 klockan 11:20
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-04, 13:47 #13
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
Jag kör UTF-8 på alla webbplatser jag utvecklar.
För att kunna hantera den här typen av problem så använder jag en samling funktioner som finns att ladda ner här:
http://sourceforge.net/projects/phputf8/

Om du inkluderar detta bibliotek som standard i din kod så har du tillgång till alternativ till alla funktioner som hanterar strängar och teckenlängder.
T.ex:
substr -> utf8_substr
strpos -> utf8_strpos
strlen -> utf8_strlen
etc.

Helt ovärderligt för mig i alla fall!
objx är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-04, 17:01 #14
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
Tack för alla bra svar.

Lite synd att diskussioner måste bli så hetsiga och penislängden måste mätas om och om igen här på WN ibland. :P

Men men, antar att någon snart svarar mig att jag kan skapa mitt egna J*VLA forum om jag inte är nöjd

Ha det!
grinditwp ä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 13:49.

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