i następna linia to krzaczki… (moja konsola wyświetla polskie znaki)
Gdzie jest problem?[/quote]
SOA1
Zdefiniuj “wyświetla polskie znaki”. Co to za konsola, jak to odpalasz, jakie masz kodowanie konsoli itd.
Stawiam na to, że konsola nie obsługuje UTFa, w końcu polskie znaki to nie utf.
Nie wiem czy to moje jakieś spostrzeżenie ale szerzy się tu ostatnio używanie Rails na Windows. Powinny być jakiś przyklejony wątek zniechęcający do tego. Albo może do forum dodać funkcjonalność wyświetlającą kto z pod jakiego systemu operacyjnego piszę na forum. Sporo by to wyjaśniło.
plik jest stworzony przez program napisany w javie lub c#, 4 pierwsze znaki to integer oznaczający ile znaków ma tekst który następuje po tych 4 znakach. Znaki te są podczas zapisu enkodowane w UTF-8. Między Javą a C# działa to dobrze, zarówno czytanie jak i zapisywanie…
przykladowy kod
# encoding: utf-8
file = File.open("plik.txt","rb:utf-8")
puts file.external_encoding.name
file.pos = 4 #przesuwam, bo wiem, ze tekst ma 4 znaki
text = file.read(4)
puts text.encoding.name
puts text
wyjscie:
UTF-8
ASCII-8BIT
Rübb
no i jak to jest ze otwieram plik binarnie, dekoduje go w UTF-8 i otrzymuje ASCII-8BIT (a w konsekwencji zupełnie innego stringa)?
pozatym właśnie przeszedłem z 1.8.x na 1.9.x , bo wygooglowalem ze wlasnie w tej wersji wprowadzono coś takiego jak “multilingualization (a.k.a. m17n)” za pomocą którego mogę używać różnych kodowań, w tym UTF-8…
Ja mam tylko jedną prośbę do @gotara i ewentualnie innych ludzi, którzy też piszą posty w ten sposób. Jeżeli piszesz coś nowicjuszowi, to postaraj się dać jakiekolwiek wytłumaczenie tego, co mu napisałeś. Jeżeli tego nie zrobisz, to takie lakoniczne 3 słowa nic mu nie dadzą. A wtedy to już lepiej nic nie napisać. W ten sposób osoba, której pomagasz, może i rozwiąże problem, ale nie zrozumie na cym dokładnie polegał i dlaczego rozwiązanie jest takie, a nie inne.
ja raczej uwazam ze lepiej naprowadzić na jakiś kierunek by ktos sam mogl do czegos dojsc niz dac odpowiedz, bo poczatkujacym daje to okazje zdobyc wiecej wiedzy, niz zastosowanie gotowego rozwiazania. Ale jesli nalegacie to moge przestac
@hosiawak: Ano używan, ale mam pewien problem ciagle by calkowicie przejsc na 1.9, a mianowicie gtk2
Może udało się komuś skompilowac gtk2 by działało z ruby 1.9
Piszę aplikacje pod ruby i gtk2. Wersja 1.8 czesto sie wlecze, 1.9 jesli o moje zastosowania mocno przyspieszylo, ale za nic gtk2 nie moge zmusic do dzialania z nia ;/
Nie chodzi o gotowe rozwiązania. Chodzi o wytłumaczenie dlaczego odradzasz 1.9. Bo później ktoś będzie dalej powtarzał w świat przy każdym błędzie 1.9: nie używajcie tego! 1.8 ftw!
to właśnie przez ten artykuł zdecydowałem się na przejście ma 1.9
robię wszystko co tam napisali i tak otrzymuje inne kodowanie :/[/quote]
No ale jestes pewien że to przypadkiem nie jest problem z konsolą nie wyświetlającą UTF8? Może dla testów zapisz do pliku co tam się wypisuje teraz i sprawdź jakie jest kodowanie w tym pliku?
[quote=bjera]aj, jednak znowu cos nie tak
file = File.open(“plik.txt”,“rb:utf-8”)
puts file.external_encoding.name
file.pos = 4 #przesuwam, bo wiem, ze tekst ma 4 znaki
text = file.read(4)
puts text.encoding.name
puts text[/quote]
Oj, wiem co jest nie tak.
file.pos = 4
przesuwa o 4 bajty do przodu. 4 bajty to nie 4 znaki w UTF8 :).
Mam pytanie odnośnie kodowania w Ruby 1.9 a pisania pluginów do Railsów. Mam taki przykładowy kod :
#encoding: UTF-8
module PlSlug
def pl_slug
self.tr!("Ą","A")
end
end
Teraz jets tak, że jeżeli nazwa modułu nie znajdzie się w pierwszej linii, nie mogę go wykorzystać (tu np. próbuję dodać moduł do klasy String). Z drugiej strony, jeśli wyrzucę z pierwszej linii informację o kodowaniu, otrzymam Syntax Error w rubym 1.9. Czy jest na to jakieś rozwiązanie poza pisaniem polskich znaków w systemie szesnastkowym?