SQLite将所有unicode字符转换为ANSI

SQLite将所有unicode字符转换为ANSI,第1张

概述我的sqlite及其文本编码有点问题.我从文档中读到sqlite处理UTF-8编码,或者我可以通过执行命令PRAGMA encoding =“UTF-8”来使用它;等等 数据库需要存储波兰语文本.该数据库将在稍后与Qt一起使用.我有一个包含两个命令的脚本:CREATE TABLE …和INSERT INTO …文件以UTF-8编码. 但是,当我使用命令行时:sqlite3 myname.db< t 我的sqlite及其文本编码有点问题.我从文档中读到sqlite处理UTF-8编码,或者我可以通过执行命令PRAGMA enCoding =“UTF-8”来使用它;等等
数据库需要存储波兰语文本.该数据库将在稍后与Qt一起使用.我有一个包含两个命令的脚本:CREATE @R_502_5991@ …和INSERT INTO …文件以UTF-8编码.
但是,当我使用命令行时:sqlite3 myname.db< the_file.sql,我可以创建数据库和表,但所有波兰特定字符,如ą,ć,ź,Ż等自动转换为更简单的ANSI等效字符:a,c,z,Z等我认为它将是命令行的问题.所以我下载了sqlite Manager 2009,当我复制/粘贴整个脚本以在sqlite Manager中执行它时,我注意到效果是一样的.在复制/粘贴期间会自动转换字符.
sqlite是否仅限于使用ANSI字符?解决方法 如果您的设置有任何问题,那肯定不是sqlite.

几个简单的测试:

Linux的:

$cat > test.sql <<EOFDROP @R_502_5991@ IF EXISTS t;CREATE @R_502_5991@ t (str varchar(20));INSERT INTO  t (str) VALUES ("ą,Ż");SELECT * FROM t;EOF$file test.sqltest.sql: UTF-8 Unicode text$sqlite3 test.db < test.sqlą,Ż

因此,它按照医生的规定运作.

视窗:

使用与上面相同的test.sql.如果您需要重新创建它,请复制并粘贴以下文本:

DROP @R_502_5991@ IF EXISTS t;CREATE @R_502_5991@ t (str varchar(20));INSERT INTO  t (str) VALUES ("ą,Ż");SELECT * FROM t;

进入记事本并使用编码保存为文件 – >在没有BOM的情况下以UTF-8编码.

sqlite3 test.db < test.sql─Е,─З,┼║,┼╗

这听起来很糟糕.但是,这是有缺陷的windows控制台!将输出保存到文件:

sqlite3 test.db < test.sql > out.txt

在记事本中打开out.txt – 看起来很棒:ą,Ż

编辑:如果您使用chcp 65001,它也适用于windows控制台:

chcp 65001sqlite3 test.db < test.sqlą,Ż

QED.

总结

以上是内存溢出为你收集整理的SQLite将所有unicode字符转换为ANSI全部内容,希望文章能够帮你解决SQLite将所有unicode字符转换为ANSI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1155148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存