Har problem att få till ÅÄÖ. Har sökt runt utan bra resultat. Hur får jag till ÅÄÖ. Det gäller inte bara data från databasen, utan även vanlig HTML i views.
Min testmiljö är Windows, men det ska väl inte spela nån roll eller?
Gislaved, har du hittat något ännu? Måste väl åndå finnas nåt därute!?
Jag har varit i kontakt med utvecklaren av swe_rails, men vi har inte kunnat hitta vad det är som ställer till det för IE + ajax. Så länge fungerar denna lösning bra, även om swe_rails gör mycket mer än bara fixar till charset.
Jag testade att slänga bort swe_rails och köra enligt dina metoder Gislaved. Nu blir det enbart rätt tecken för data som hämtas via databasen, inte tecken som skrivits in manuellt inom html-taggar.
Jag har:
1. Ställ om RadRails (kör windows) att enbart arbeta i utf-8 format.
2. Lagt till 'encoding: utf8' i database.yml
3. Slängt in nedan kod i application.rb:
after_filter :set_charset
def set_charset
content_type = @headers["Content-Type"] || 'text/html'
if /^text\//.match(content_type)
@headers["Content-Type"] = "#{content_type}; charset=utf-8"
end
end
4. Satt <meta http-equiv="content-type" content="text/html; charset=utf-8" /> i <head></head> på application.rhtml (layout-filen).
Utöver att visa massa felaktiga tecken så fungerar sidan heller inte i IE (inget renderas, dock finns hela källkoden där). Har du någon erfarenhet av detta sedan tidigare? Dels att den visar data rätt men vanlig text fel och/eller att sidan inte vill renderas i IE? Hade varit jävligt skönt att få rätt på detta nu, börjar bli rätt trött på allt trixande för att få Ror att fungera dugligt.
EDIT:
Vid en närmare inspektion av koden som skickas till IE så skickas vanlig text med rätt tecken, medan data skickas med fel tecken - tvärtemot FF/Opera. Vad i helvete?
En gissning är att RadRails använder utf-8 på enbart nya filer, inte befintliga. Blir det samma sak om du skapar en ny fil?
Alternativt kan man ersätta åä och ö med deras html-motsvarighet å etc.
Vid en närmare inspektion av koden som skickas till IE så skickas vanlig text med rätt tecken, medan data skickas med fel tecken - tvärtemot FF/Opera.
Vad händer om du byter ut application.rb mot
after_filter :set_charset
def set_charset
@headers["Content-Type"] ||= "text/html; charset=UTF-8"
end
Förresten, du har inte valt att använda någon speciell teckenkodning i dina webbläsare? Man kan ju "tvinga" webbläsaren att köra annat än vad webbsidan säger.
Då lyckades du inte få RadRails att använda UTF-8 på befintliga filer, helt enkelt. :)
Bra att det fungerade.
Kör SciTE, inte RadRails. Antar att du kör Mac, Gislaved. Har funderingar på att gå över antingen till Mac, eller Linux. ASP.NET har länge varit min starka sida, men börjar nu inse att Rails går vesäntligt (hur stavas det?) mycket SNABBARE att utveckla i vad gäller webbmiljö.
Har hört mycket bra om TextMate och Mac med Ruby. Är det verkligen så bra som alla påstår?
Jag har provat en hel del olika editorer, och skulle i nuläget inte byta bort TextMate mot någon annan som finns på marknaden idag. Men du måste nog prova själv för att se om du gillar det, det finns många bra editorer som passar lite olika behov.
Då lyckades du inte få RadRails att använda UTF-8 på befintliga filer, helt enkelt. :)
Hah, stämde på pricken det du sa. Testade att slänga ihop ett nytt railsprojekt och å, ä och ö fungerade utmärkt både avseende data och vanlig text. Nu renderas det i IE som det ska med (måste ha varit en konflikt mellan charsetsen som fick IE att balla ur). Tackar ödmjukast!
Det verkar som om nästa version av Rails (1.2) har betydligt bättre stöd för UTF-8 direkt från starten. Programspråket Ruby självt får vi dock vänta ytterligare ett år på att få uppdaterat.
Kör med UTF-8, det har eliminerat all huvudvärk jag har haft med teckenkodningar. Alla ajax-anrop skickas som UTF-8, så antingen får du göra om dem till ISO-8859-1 eller så kör du helt i UTF-8.