Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema con codifica (utf8)

    Allora, il problema è il seguente: stampo in una vista una proprietà di un oggetto del modello ed ottengo i caratteri scazzati.

    Uso mysql5.

    Infatti, se faccio
    codice:
    @myobj.description.is_utf8?
    ottengo false.

    I dati e lo schema vengono creati con
    codice:
    mysqlcli> source mysql.sql
    Il file mysql.sql è codificato in utf-8 (come mi dice notepad++) e il codice SQL contiene indicazioni del tipo
    codice:
    SET NAMES utf8;
    SET CHARACTER SET utf8;
    
    CREATE TABLE mytables (
     ....
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    che, ora, non sono un dio in mysql ma mi pare che voglia dire che le tabelle abbiano codifica utf8 (o qualcosa del genere).

    Sicuramente non sono un esperto di charset ed evidentemente non ne conosco tutti i risvolti; spero che qualcuno di voi mi sappia aiutare.

    Grazie,

    ciao
    "Il problema delle citazioni su Internet è verificarne l'autenticità." (Winston Churchill)

  2. #2
    Non ho capito dove vedi i caratteri sbagliati. Se nel browser le cause possono essere due (anche entrambe):

    - il tuo web server manda fuori una codifica diversa da UTF8 (se hai apache puoi intervenire con DefautCharset)
    - la tua pagina web dice al browser di leggere una codifica diversa da UTF8 (in questo caso modifica gli header della pagina).

    Poi vedi se questo ti aiuta:
    http://www.openclose.it/utf8_to_html.do

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  3. #3
    Il codice
    codice:
    @myobj.description.is_utf8? # => false
    mi fa intuire che alla fine quella colonna non sia codificata in UTF-8.. quindi penso che il problema sia dal lato di mysql (o al limite di ActiveRecord).. però oltre alle istruzioni sql sopra riportate, non so come impostare sto benedetto charset

    I dati nel database appaiono codificati, se visualizzati dal CLI di mysql con una query.
    "Il problema delle citazioni su Internet è verificarne l'autenticità." (Winston Churchill)

  4. #4
    Originariamente inviato da robyonrails
    I dati nel database appaiono codificati, se visualizzati dal CLI di mysql con una query.
    Ok, ma DOVE vedi i caratteri sbagliati? Nel browser? Hai provato ad indicare la codifica corretta come suggerito?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  5. #5
    sì nel browser. Il browser è impostato con codifica utf-8.
    "Il problema delle citazioni su Internet è verificarne l'autenticità." (Winston Churchill)

  6. #6
    Ciao, forse potresti fare una prova e verificare a mano se si tratta di UTF8.

    Stampa una vista e copia e incolla una singola lettera "è" in questo script. Fai tutto all'interno dello stesso ambiente, per esempio il terminale, usando irb.

    codice:
    "è".each_byte do |x|
    puts x
    end
    se stampa

    195
    168

    si tratta di UTF8, altrimenti no. Rileggi cmq l'articolo poco sopra.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.