【发布时间】:2017-07-11 20:30:52
【问题描述】:
我正在学习一个教程,其中要求我从 sqlite3 数据库中创建、插入和读取数据(并使用 ascii 模式显示它)。
当我将它粘贴到文本编辑器时,它会产生 2GarfieldTabby18
我不确定是 sqlite3 本身,还是终端问题。谁能告诉我这些方形标志的专业名称是什么,它们为什么出现(我猜它与编码有关),以及如何修复它们?
我在 Ubuntu 16.04 上运行。 Sqlite 版本 3.11.0
在我的终端中运行locale 返回:
LANG=en_US.UTF-8
LANGUAGE=en_US:en_GB:en_AU:en_CA:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
【问题讨论】:
-
我猜是编码问题。看看this link,看看这些答案是否符合您的需求。我不太确定这是同一个问题。
-
您是如何输入数据的,您是如何读取数据的? 001F 是 ASCII “单位分隔符”字符。
-
这是
sqlite3的ascii模式的正确行为。哪个教程? -
@jgmh 感谢您的链接,但建议的答案似乎不起作用,正如@cl 在该答案之后的下一个答案中所建议的那样。 @varro 我已使用此命令插入数据:
INSERT INTO pets(_id, name, breed, gender, weight) VALUES(1, "Tommy", "Pomeranian", 1, 4);。然后我使用.mode ascii,然后我使用SELECT * FROM pets;读取数据。但在我使用.mode ascii之前,我还读取了数据并得到了1|Tommy|Pomeranian|1|4。 @cl 它的 Udacity 的 Android 基础纳米学位。第 1.27 课。