sqlite乱码的解决方法

摘要:
在命令行上通过sqlite3.exe创建数据库后,通过insert语句插入中文内容,然后在程序或sqlite管理工具中打开乱码。解决这个问题的方法是在程序中做好代码转换,并确保存储utf-8字符。经过研究发现,问题的主要原因是,当您写入数据时,字符代码是ANSI,而当它在DBGrid中显示时,它以UTF-8代码显示,因此存在乱码。解决方案是根据UTF-8代码编写,例如C/C++代码?

在命令行下通过sqlite3.exe创建数据库后,通过insert语句插入中文内容后,在程序或sqlite管理工具中打开乱码。网上有篇文章描述的就是这样一个过程。链接:http://www.cnblogs.com/niunan/archive/2009/10/31/1593516.html

通过谷歌资料发现,这个问题很难解决,要么插入中文乱码,要么只能显示中文不能插入,有篇文章描述:http://bbs.51cto.com/thread-1072214-1-1.html。

解决此问题的方法是在程序中做好编码转换,保证存入的是utf-8字符即可。相关文章:http://bbs.csdn.net/topics/390245535

引用以上网页内容:

我来了,楼主还在么?
经研究发现,问题的主要原因是你写入数据的时候,字符的编码是ANSI的,而在DBGrid中显示时,则是按UTF-8的编码显示,所以出现乱码。那么解决方法就是:写入时按UTF-8编码写入,如:
C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void__fastcallTForm1::Button3Click(TObject*Sender)
{
char*errmsg;
AnsiStringstrSQL=AnsiString().sprintf(
"insertintot1(id,name)values(1,'%s')",
AnsiToUtf8("张三"));
intresult=sqlite3_exec(PDB,strSQL.c_str(),0,0,&errmsg);
if(result)
{
Label1->Caption="插入数据失败";
}
else
{
Label1->Caption="插入数据成功";
}
}

免责声明:文章转载自《sqlite乱码的解决方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shell脚本删除远程过期文件windows-System权限获取任意用户权限目录-举例GetTempPath下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基础方法或属性: 列表,元组,字典,字符串,集合及内置函数等(注:只有英文名)

列表 list append clear copy count extend index insert pop remove reverse sort 元组 tuple count index 字典 dict clear copy fromkeys get items keys pop popitem setdefault update values 字...

[UWP小白日记2]SQLite数据库DOME

  数据库说简单点就是增删改查,但是对新手来说也是要爆肝的。作为一个新手爆肝无数次啊, 血的教训啊现在UWP的教程又少,说多了都是泪。留下来免得以后又爆肝。还有:一定要写注释!一定要写注释!一定要写注释! 重要的事情说三遍!   1.首先,准备工作:   1)引用:            获取途径:VS里的扩展和更新、NuGet等。   2)数据库模型:...

使用 SQLite 数据库

Android 提供了对 SQLite 数据库的完全支持。每个 App 使用自己的数据库,App 内所有类都可以通过名字访问创建的数据库,但只限于此 App 内。 推荐使用一个继承 SQLiteOpenHelper 的子类,重写 onCreate() 方法去创建一个的 SQLite 数据库。通过执 行 SQLite 命令去创建数据库表。例如: Create...

黑帽SEO经常采用的字符编码(&#+五位数字)

你的网站如果被黑过,当你查看网页源代码的时候,在TDK标签上这些字符相信你一定不陌生: <meta name="keywords" content="&#40857;&#56;&#23089;&#20048;&#23448;&#32593;&#25163;&#26426;&#29...

#pragma execution_character_set的意义

就是设置执行字符集,指示char的执行字符集是UTF-8编码。如果源文件中出现中文,必须要设置为 #if_MSC_VER>=1600 #pragmaexecution_character_set("utf-8") #endif 另外Qt5中关于中文的建议解决方案是: 1.保证源程序源码文件是UTF-8,然后用以上预处理命令 2.不用保证源码文件是UT...

代码页

  最近写一个网络程序时,碰到字符串和字节数组之间的转换问题,开始时还比较简单,字符串都是标准的Ascll编码,处理起来比较简单:字符串转字节数组 byte [] bts=Encoding.ASCII.GetBytes(str);字节数组转字符串 string str=Encoding.ASCII.GetString(bts);但是后来发送的数据不仅仅是A...