sqlite转mysql后乱码_解决delphi使用sqlite时中文最后一个字是乱码的问题

本文介绍了在Delphi应用中使用SQLite数据库遇到的中文乱码问题,特别是最后一个汉字显示不正确的情况。作者通过分析SQLiteTable3.pas源代码,发现了问题原因并提出了解决方案,即使用RawByteString类型避免强制转换,从而成功解决乱码问题。此外,文中还提及了其他乱码场景的解决方法,如PHP的json_encode中文转码、Android Studio运行时的中文乱码等。
摘要由CSDN通过智能技术生成

给部门同事写了个自动生成测试用例执行情况图表的工具,使用的sqlite3,遇到中文分别使用UTF8Encode和UTF8Decode进行处理,可还是出现了某些字段从数据库中读出时,最后一个汉字是乱码的情况。

自己看了一下SQLiteTable3.pas的代码,发现从数据库中读出utf8字符时用setstring进行了强制转换,造成没有正确读取全部字符。于是自己把源代码改了一下,使用RawByteString类型,保持原样,不做转换,完美解决乱码问题。

现将自己修改的版本放出,供大家使用~

基于最新稳定版“A simple Delphi wrapper for Sqlite3”(版本号为:Update 10 February

2011)修改而成。

提取码:uawl

解决requests获取源代码时中文乱码问题

用requests获取源代码时,如果是中文网页,就可能会出现乱码,下面我以中关村的网站为例: import requests url = 'http://desk.zol.com.cn/meinv/' ...

如何解决android studio 运行时中文乱码的问题

相信很多朋友都会遇到android studio 在MAC OS中运行的时候中文乱码.而在代码编辑的时候正常.经过几天的不断寻找解决办法,终于解决了 比如: Toast.makeText(MainAc ...

解决Delphi 2010启动时出现cannot create xxxx\EditorLineEnds.ttr问题

由于在Windows安装了最近的更新(KB2982791, KB2970228)后,Delphi的IDE需要创建的一个文件%TEMP%\EditorLineEnds.ttr会被系统锁定,导致除非重新启 ...

web 项目:解决插入 MySQL 数据库时中文乱码问题

背景:在做 javaweb 项目的时,前台传递的中文最后插入数据库的时候总是出现乱码现象. 解决方案 ​ A.不管是使用 Idea.eclipse,确定自己的项目所使用的字符集是 UTF-8. ​ B ...

解决Qt程序发布时中文乱码问题(通过QApplication.addLibraryPath加载QTextCodec插件)

Qt程序的文字编码,是通过插件来解决的,所以我们发布的时候需要把相应的插件也发布出去,在开发者电脑上程序会自动从插件目录加载到插件,但是如果发布给别的电脑使用,需要手动指定插件路径,如下所示: int ...

解决Delphi 2010启动时卡死并报“displayNotification: 堆栈溢出”错误

1. 清理IE的历史记录,删除浏览器缓存(不需要清cookie) 2. 禁用startpage 2.1 从 Delphi 2010 启动菜单上点右键 -> 查看属性->快捷方式->目 ...

解决Delphi 2010启动时卡死并报displayNotification堆栈溢出错误

1. 清理IE的历史记录,删除浏览器缓存(不需要清cookie) 2. 禁用startpage 2.1 从 Delphi 2010 启动菜单上点右键 -> 查看属性->快捷方式->目 ...

解决php json_encode 出现的中文转码、乱码问题

// 防止json中文转码 function jsonEncodeWithCN($data) { return preg_replace("/\\\u([0-9a-f]{4})/ie&quo ...

解决SQLite数据库中文乱码问题

关于SQLite中出现中文乱码的分析以及解决方案 我们在使用SQLite数据库时候,可能会发现,向数据库插入数据时候显示的是汉字,但通过SQLite读出来时却显示的乱码,这是因为SQLite数据库 ...

随机推荐

【代码笔记】iOS-可以向左(右)滑动

一,效果图. 二,代码. RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional se ...

eclipse(STS,myeclipse)老是报ThreadPoolExecutor$Worker.run()

资料地址:http://stackoverflow.com/questions/6290470/eclipse-debugger-always-blocks-on-threadpoolexecutor ...

暑假集训(4)第四弹 -----排列,计数(hdu1465)

题意概括:嗯,纵使你数次帮助小A脱离困境,但上一次,小A终于还是失败了.那数年的奔波与心血,抵不过轻轻一指,便彻底 湮灭,多年的友谊终归走向末路.这一切重击把小A彻底击溃! 不为什么,你到底还是要继续 ...

14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用

14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用 LOCK TABLES 和UNLOCK TABLES 交互实用事务如 ...

MyEclipse提示出错

1.错误描述 The 'org.eclipse.jdt.ui.JavaAllCompletionProposalComputer' proposal computer from 'org.eclips ...

:after/:before使用技巧

伪类:after/:before基本使用 div:before{ content:'';//必须要写,没写则伪元素无效 display:; position:''; ... } //在一个div子元素 ...

hdu 1166 线段树(sum+单点修改)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

2019浙大校赛--E--Potion(签到水题)

一丢丢思维就ok 题目大意: 魔法师要煮药,有n个等级的药,所需要的药物为a1,a2...an,意为第n级需要多少药物,下一行为库存的不同等级药物,药物可降级使用不可升级. 思路:从高级药物开始解,把 ...

python -- Pythonic

所谓Pythonic,就是极具Python特色的Python代码(明显区别于其它语言的写法的代码) 总结如下: 两变量的内容交换 Python:a,b = b,a 非Python:t=a;a=b;b= ...

mybatis12--一级缓存

验证一级缓存的存在 对应的实体类 /** *学生对应的实体类 */ public class Student { private Integer sId; private String sName; ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值