Ruby, “incompatible character encodings: UTF-8 and CP852 (Encoding::CompatibilityError)”

后端 未结 3 1540
萌比男神i
萌比男神i 2021-01-22 06:37

Why

# encoding: utf-8
out=File.open(\"z\\\\test.txt\", \"a\") 
out.puts \"ç\"  
out.close
out=File.open(\"z\\\\test.txt\", \"r\")
puts out.read+\"ś\"
         


        
3条回答
  •  执念已碎
    2021-01-22 07:09

    This should explain a lot

    # https://pl.wikipedia.org/wiki/Kodowanie_polskich_znak%C3%B3w
    inp = "zale\xBFno\x9cci".force_encoding('Windows-1250')
    
    # inp = File.open('content-win-1250.txt', :encoding => 'Windows-1250').read
    
    inp = inp.encode('utf-8')
    
    File.open("tmp.txt", "wb") do |out|
        out.write(inp)
    end
    
    # file 'tmp.txt contains "zależności"
    

提交回复
热议问题