Falls ihr mal in Genuss dieser Fehlermeldung kommt, wenn ihr ein Model ladet und bearbeitet:
org.jcodings.specific.BaseUTF8Encoding.codeToMbcLength(BaseUTF8Encoding.java:80)
stimmen die Encodings von der Datenbank nicht.
Das Problem ist hier, dass er schon in Java raus fliegt und man in Ruby eher weniger Gewalt darüber hat
Das tritt häufig auf, wenn ihr MsSQL verwendet mit der Codepage Latin1_General_CI_AS.
Verwendet die URL-Angabe in der Database-YML um das charset des Treibers auf Cp1252 zu setzen.
url: jdbc:jtds:sqlserver://[servername]/[datenbank];charset=Cp1252
Das Betroffene Model braucht ein neues Encoding, dies setzt man im Quellcode mit der '''$KCODE'''-Variabel.
Jetzt muss nur noch die Methode ArJdbc::MsSQL.columns gepatcht werden.
Alle Sonderzeichen erscheinen nun als '''\[zahl]''' und führen zu Ruby-Fehlern da die Reflections die Spaltennamen als Methoden zu verwenden
tierisch in die Hose gehen.
@table_columns[table_name].each do |column|
column.name.gsub!("\303\204", 'Ae')
column.name.gsub!("\303\237", 'ss')
...
end
Und Schluss ist mit dem Klamauk 