您的当前位置:首页sqlite3 中文乱码问题 qt4

sqlite3 中文乱码问题 qt4

2023-11-08 来源:六九路网

在代码操作数据库的时候 会出现乱码,一下是解决方法 

一、QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));插入数据语句若有中文必须先QObject::tr()一番,即进行编码,如query.exec("INSERT INTO student (schnum, name, sex, nation) VALUES (2614103, ‘天门,‘男‘, ‘汉族‘)");改为query.exec(QObject::tr("INSERT INTO student (schnum, name, sex, nation) VALUES (2614103, ‘天门,‘男‘, ‘汉族‘)"));结果在显示中都能得正确显示。二、将上面设置编码的地方改为:QTextCodec::setCodecForTr(QTextCodec::codecForLocale()));设置为本地编码,插入数据时对查询语句进行QObject::tr(),结果数据库和显示都为中文,能正常显示了。 参考http://www.qtcn.org/bbs/read.php?tid=18870

sqlite3 中文乱码问题 qt4

标签:

小编还为您整理了以下内容,可能对您也有帮助:

sqlite3数据库,中文乱码该怎么处理,c++该怎么处理

Sqlite默认保存数据是用UTF8格式,而现有程序开发工具都是默认GB2312的格式,所以你编程写的中文不转码直接写到库里后,用任何数据库工具看肯定都是乱码。但是读出来之后仍然是GB2312,所以显示正常。反之如果你用数据库工具写中文,则默认存UTF

sqlite3数据库,中文乱码该怎么处理,c++该怎么处理

Sqlite默认保存数据是用UTF8格式,而现有程序开发工具都是默认GB2312的格式,所以你编程写的中文不转码直接写到库里后,用任何数据库工具看肯定都是乱码。但是读出来之后仍然是GB2312,所以显示正常。反之如果你用数据库工具写中文,则默认存UTF

android sqlite3 中文乱码问题,恳求~

楼主,插入字符的编码和读出时用的编码要一致,就是说:

假设,数据库中数据是你通过android代码插入,以GB2312编码格式,如:

db.execSQL("insert into question_tb values(?,?,?,?,?,?,?)",new String(val,"gb2312"));

插入到表:

"Create table IF NOT EXISTS question_tb(" +

"code int," +

"is_finished int," +

"is_english int,"+

"pic_name varchar(64)," +

"ans_back BLOB," +

"ans_true varchar(64)," +

"info int"+

")";

读出就是:

byte[] val = cursor.getBlob(cursor.getColumnIndex("ans_back"));

            String sn;

try {

    sn = new String(val,"gb2312");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

就是说,插入和读取要么都做转换,要么都不做(android默认UTF-8格式)。

显示全文