从Ruby/Shoes传递到SQLite的字符串值在数据库中显示为亚洲字符

从Ruby/Shoes传递到SQLite的字符串值在数据库中显示为亚洲字符,ruby,sqlite,shoes,Ruby,Sqlite,Shoes,我目前正在学习Ruby/Shoes和Sqlite,我遇到了一个奇怪且(希望如此)简单的问题。测试程序很简单:在文本框中输入文本值,单击“确定”,然后将值写入表中。不幸的是,似乎写入表中的任何文本值都显示为亚洲字符(假设为中文),而不是输入的内容。测试输入文本为“Tyler” require 'sqlite3' Shoes.app do db = SQLite3::Database.new ("WPlanning.db") testo = edit_line

我目前正在学习Ruby/Shoes和Sqlite,我遇到了一个奇怪且(希望如此)简单的问题。测试程序很简单:在文本框中输入文本值,单击“确定”,然后将值写入表中。不幸的是,似乎写入表中的任何文本值都显示为亚洲字符(假设为中文),而不是输入的内容。测试输入文本为“Tyler”

  require 'sqlite3'
  Shoes.app do
    db = SQLite3::Database.new ("WPlanning.db")
    testo = edit_line
        button "save" do
    db.execute("create table songlist(title string, number int)")
    db.execute("insert into songlist values(?, 1)", testo.text)
    end
end

非常感谢您的帮助。

您的数据库是否用UTF-16编码?(运行
PRAGMA ENCODING
命令来查找。)它确认UTF-8编码。似乎该问题与SQlite Expert Personal有关。命令行查询返回正确的结果,并通过SQLite Administrator查看数据。如果能像我非常喜欢SQLite Expert那样正确地显示它,那就太好了。在处理字符编码时,请记住,您通常会混合使用3个因素:数据库输入编码、数据库输出编码和查看器编码。确保你对它们都进行了分析。