Hi, 2008/9/16 Wu Nan <i.wunan+rubymail / gmail.com>: > Hi All, > > I think I just found a bug in Win32OLE, > > When I read a cell which has Korean or Chinese Character Text from Excel2003 > with Win32Ole, whatever the text is, the value of the cell is always '????' > > My environment is WinXP Sp3, Office2003, Ruby is 1.8.6 (I also test the > 1.9.0, it still returns ??????) > > I use the parseexcel, and it can read the cell content correctly. > > I attched the test codes and test file. > In the excel file, there are 2 cells, first cell is Koean Text, 2nd cell is > Chinese Text. > > test.rb is used Win32Ole. > test2.rb is used parseexcel, if you want use this, please:Gem Install > parseexcel > test.xls is the excel file > > Thanks for alex's help. > > BR > Nan > That is not a bug. You must use WIN32OLE.codepage in case of the mixed character set handling: Here is a working code for my Korean WinXP SP3 based on your test.rb: require 'win32ole' require 'iconv' def read_excel(e_name, s_name) $excel.WorkBooks.Open("#{$MY_LOCATION}/" + e_name,TRUE) $excel.WorkSheets(s_name).Activate begin puts $excel.Cells(1,1).value puts $excel.Cells(1,2).value $excel.Cells(1,1).text.to_s.each_byte{|c| print c, ' '} puts Iconv.conv("EUC-KR//IGNORE","UTF-8//IGNORE",$excel.Cells(1,1).value) ensure $excel.WorkBooks.Close() end end $MY_LOCATION = Dir.getwd WIN32OLE.codepage = WIN32OLE::CP_UTF8 $excel = WIN32OLE.new("excel.application") $excel.Visible = false begin read_excel('test.xls',"Sheet1") ensure $excel.Quit() end Regards, Park Heesob