Kom ihåg mig?
Home Menu

Menu


Konvertera UTF-8 till ISO-8859-1 med PHP

 
Ämnesverktyg Visningsalternativ
Oläst 2010-09-13, 09:31 #1
marcuslind marcuslind är inte uppkopplad
Medlem
 
Reg.datum: Aug 2009
Inlägg: 188
marcuslind marcuslind är inte uppkopplad
Medlem
 
Reg.datum: Aug 2009
Inlägg: 188
Citat:
Ursprungligen postat av cyner Visa inlägg
marcuslind: den data som du får från $_POST är uppenbarligen UTF-8. Det är ingen skillnad på ASCII och UTF-8 om bara bokstäverna a-z används.

Läs gärna min bloggpost för att förstå lite mer om teckenkodning, det är riktigt svårt att få sånt här rätt om man inte kan grunderna ordentligt:

http://www.entreprenord.se/hur-funge...gentligen.html

Kan du spara ned XML-strängen i en fil och titta på den med en textredigerare? Kolla vilken teckenkodning den tror att filen har.
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?

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å?
marcuslind är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-13, 10:04 #2
cyners avatar
cyner cyner är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 74
cyner cyner är inte uppkopplad
Medlem
cyners avatar
 
Reg.datum: Jun 2006
Inlägg: 74
Citat:
Ursprungligen postat av marcuslind Visa inlägg
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 Visa inlägg
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?
cyner ä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:34.

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