无法从ruby黄瓜自动化中的SQL服务器获取utf8字符

时间:2012-11-29 08:28:43

标签: ruby cucumber watir-webdriver

我正在使用Ruby黄瓜自动化我的应用程序。我正在使用DSN ODBC驱动程序和“dbi”连接到我的sql server 2012 DB。它连接成功,我可以获得记录。但是当我试图从ruby脚本中的表中获取unicode(utf-8)数据时,我会得到垃圾字符(???????)。

请帮我从DB获取unicode字符。

下面是我用来连接和从DB检索数据的代码。

# encoding: UTF-8
require 'rubygems'
require 'DBI'
 def run_select_query_verifyText(query,verifyString)
    connection = nil
        status = false
      begin
          #puts "Connecting to DataBase"
                connection = DBI.connect('DBI:ODBC:ODBCDriver','test','xxxxx')
         rescue DBI::DatabaseError => e
           puts "An error occurred"
           puts "Error code:    #{e.err}"
           puts "Error message: #{e.errstr}"
           return false
      end

        #execute sql query
        dataset = connection.execute(query)#.fetch_all
        dataset.each do |row|
            row.each do |data|
            puts "cell data is #{data}"

                if data == verifyString then

                    status = true
                    break
                end
            end
            if status then
                break
            end
        end
        connection.disconnect

       return status
    end

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,修复了env.rb文件中的以下行

ENV['CUCUMBER_OUTPUT_ENCODING'] = 'UFT-8'