On May 28, 1:11pm, ciapecki <ciape... / gmail.com> wrote: > I have a small script oci1.rb: > > require 'oci8' > conn = OCI8.new("test","test","test_db") > File.open("out.txt","wb") do |out| > tabs = conn.exec('SELECT * from test_utf8') do |r| > out.write(r.join(',')) > out.write("\n") > end > end > conn.logoff > > that runs perfectly on windows producing from my test_db: > polish, > russsian,§æ§í§Ó§Ñ§æ§í§Ó§Ñ > german, > > when I run exactly the same on my linux box: > polish,loszc > russsian,???????? > german,aou > > I tested then a small script that reads and writes UTF8 on linux > (read_write_utf8.rb): > File.open("utf8_out.txt","wb") do |out| > File.open("utf8.txt","r").each do |line| > out.write(line) > end > end > > and that works good! > > chris@emeadb:~/work/ruby/oci$ ruby read_write_utf8.rb > > chris@emeadb:~/work/ruby/oci$ cat utf8.txt > polish, > russsian,§æ§í§Ó§Ñ§æ§í§Ó§Ñ > german, > > chris@emeadb:~/work/ruby/oci$ cat utf8_out.txt > polish, > russsian,§æ§í§Ó§Ñ§æ§í§Ó§Ñ > german, > > where should I try to dig into to find out how to force the oracle > database data to be properly stored in the file on linux? > I just add that > LANG=en_US.UTF-8 > > thanks, > chris apparently setting NLS_LANG=AMERICAN_AMERICA.UTF8 (externally! - not in the ruby script) did the trick. chris