Citat:
Ursprungligen postat av marcuslind
Enligt mb_detect_encoding() så är olika fält ifrån formuläret olika encoding. De med ÅÄÖ är UTF-8 och de med A-Z är ASCII. Gissar den fel?
|
mb_detect_encoding() och andra funktioner
kan inte ta reda på vilken teckenkodning som faktiskt har använts, den kan bara gissa baserat på de tecken som den ser. Om exempelvis en sträng är tom, hur ska den veta vilken teckenkodning som använts?
Alltså är det bästa att fråga sändaren vilken teckenkodning som används, allt annat riskerar att gå fel, som det gör för dig.
Om du läser på om teckenkodning (exempelvis på min blogg, som jag föreslog), så förstår du att en sträng med a-z både kan tolkas som ASCII, ISO-8859-1, Windows 1252, UTF-8 och andra teckenkodningar. Det spelar ingen roll för dessa tecken, alltså är mb_detect_encoding() helt meningslös i dessa fall.
Och eftersom mb_detect_encoding() i ditt fall säger UTF-8 för vissa fält, kan du utgå från att det är UTF-8 som används och inget annat. Men det kräver förstås att inte källan byter teckenkodning.
Citat:
Ursprungligen postat av marcuslind
Det jag vill göra är alltså att få formuläret att även skicka ÅÄÖ i ASCII; precis som du säger så går det med ISO-8859-1(?). Hur får jag formuläret att skicka det så?
|
(Strunta i ASCII, du vill ju ha ISO-8859-1, och det är inte samma sak. ASCII innehåller inte åäö.)
Konvertera indata från UTF-8 till ISO-8859-1 och skicka. Har du provat det?