Meddelande

Minska
No announcement yet.

ÅÄÖ i Ruby

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • ÅÄÖ i Ruby

    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!?
    Vår herre har skapat nötterna, men han har inte knäckt dem.
    Webbradion Fyrklöver Webbyrå

  • #2
    För att få åäö att fungera fick jag dels installera swe-rails(http://os.ki.se/swe_rails.html) samt köra in kod i applicationkontrollern enligt http://www.rubyonrails.se/rails/show...nda+ISO-8859-1 . Se även http://www.rubyonrails.se/rails/show...+applikationer . Har dock hört att swe-rails i vissa fall kan ställa till det med ajax-requests.
    Twitter: @sebastianj - Blogg: SebastianJohnsson.com - Projekt: Smartlend - jämför och låna pengar

    Kommentera


    • #3
      Jag kör med följande, och ser till att texteditorn jobbar i UTF-8 (jag använder Textmate, så det är standardläget).

      database.yml:
      [kod]
      development:
      adapter: mysql
      database: din_databas
      encoding: utf8
      osv ...
      [/kod]

      application.rb
      [kod]
      after_filter :swedish_chars

      def swedish_chars
      @headers["Content-Type"] ||= "text/html; charset=UTF-8"
      end
      [/kod]

      I din layoutnamn.rhtml:
      [kod]
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      </head>
      [/kod]

      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.
      Utan en punkt hade den här meningen aldrig tagit slut

      Webbradion - podcast för webbutvecklare | Blogg | Jobb

      Kommentera


      • #4
        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:
        Kod:
        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?
        Last edited by SebbeJ; 2006-11-22, 14:15.
        Twitter: @sebastianj - Blogg: SebastianJohnsson.com - Projekt: Smartlend - jämför och låna pengar

        Kommentera


        • #5
          Hittade detta på http://rails.se/rails/show/Anv%C3%A4nda+ISO-8859-1 :

          Kod:
          	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=iso-8859-1" 
          	  end
          	end
          funkade finfint! Nu vidare till fixandet!
          Last edited by pirajan; 2006-11-22, 16:55. Anledning: Hittade länken
          Vår herre har skapat nötterna, men han har inte knäckt dem.
          Webbradion Fyrklöver Webbyrå

          Kommentera


          • #6
            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 &amp;aring etc.

            [citat]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. [/citat]
            Vad händer om du byter ut application.rb mot
            [kod]
            after_filter :set_charset

            def set_charset
            @headers["Content-Type"] ||= "text/html; charset=UTF-8"
            end
            [/kod]


            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.
            Utan en punkt hade den här meningen aldrig tagit slut

            Webbradion - podcast för webbutvecklare | Blogg | Jobb

            Kommentera


            • #7
              [citat]funkade finfint! Nu vidare till fixandet![/citat]
              Då lyckades du inte få RadRails att använda UTF-8 på befintliga filer, helt enkelt.

              Bra att det fungerade.
              Utan en punkt hade den här meningen aldrig tagit slut

              Webbradion - podcast för webbutvecklare | Blogg | Jobb

              Kommentera


              • #8
                Gislaved skrev:
                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ö.
                Vår herre har skapat nötterna, men han har inte knäckt dem.
                Webbradion Fyrklöver Webbyrå

                Kommentera


                • #9
                  [citat=pirajan]Kör SciTE, inte RadRails. Antar att du kör Mac, Gislaved.[/citat]Ah, sorry. Jag blandade ihop er.

                  Japp, jag utvecklar på en PowerBook och det är mycket trevligt ihop med Ruby on Rails.
                  Utan en punkt hade den här meningen aldrig tagit slut

                  Webbradion - podcast för webbutvecklare | Blogg | Jobb

                  Kommentera


                  • #10
                    Har hört mycket bra om TextMate och Mac med Ruby. Är det verkligen så bra som alla påstår?
                    Vår herre har skapat nötterna, men han har inte knäckt dem.
                    Webbradion Fyrklöver Webbyrå

                    Kommentera


                    • #11
                      pirajan skrev:
                      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.
                      Utan en punkt hade den här meningen aldrig tagit slut

                      Webbradion - podcast för webbutvecklare | Blogg | Jobb

                      Kommentera


                      • #12
                        Gislaved skrev:
                        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!
                        Twitter: @sebastianj - Blogg: SebastianJohnsson.com - Projekt: Smartlend - jämför och låna pengar

                        Kommentera


                        • #13
                          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.

                          http://weblog.rubyonrails.com/2006/1...se-candidate-1
                          Utan en punkt hade den här meningen aldrig tagit slut

                          Webbradion - podcast för webbutvecklare | Blogg | Jobb

                          Kommentera


                          • #14
                            Ajajaj... Testade lite form_remote_tag och vips så blir det fel. Postar åäö och i databasen läggs det till åäö. Vad göra?
                            Vår herre har skapat nötterna, men han har inte knäckt dem.
                            Webbradion Fyrklöver Webbyrå

                            Kommentera


                            • #15
                              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.
                              Utan en punkt hade den här meningen aldrig tagit slut

                              Webbradion - podcast för webbutvecklare | Blogg | Jobb

                              Kommentera

                              Working...
                              X